#include <bits/stdc++.h>
using namespace std;
const long long con=100000+100;
vector < int > mas[con];
int per[con]={0};
int res[con]={0};
int n,m,k1=0;
bool en=false;
void viv()
{
    cout<<"YES\n";
    for(int i=0;i<=n;i++)
    {
        cout<<res[i]<<" ";
    }
    return;
}
void rec(int zar,int in)
{
    if(en)
    {
        return;
    }
    k1++;
    per[zar]=1;
    res[in]=zar;
    if(k1==n)
    {
        res[in+1]=1;
        for(auto u:mas[zar])
        {
            if(u==1)
            {
                viv();
                en=true;
                return;
            }
        }
    }
    else
    {
        for(auto u:mas[zar])
        {
            if(per[u]==0)
            {
                rec(u,in+1);
            }
            if(en)
            {
                return;
            }
        }
    }
    k1--;
    per[zar]=0;
    return;
}
int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    int a,b;
    cin>>n>>m;
    for(int i=0;i<m;i++)
    {
        cin>>a>>b;
        mas[a].push_back(b);
    }
    if(m<n)
    {
        cout<<"NO";
        return 0;
    }
    for(int i=1;i<=n;i++)
    {
        if(mas[i].size()==0)
        {
            cout<<"NO";
            return 0;
        }
    }
    rec(1,0);
    if(en==0)
    {
        cout<<"NO";
    }
    return 0;
}
