#include <bits/stdc++.h>
using namespace std;
/*/void go(long long k,long long cnt,vector<long long>v[n]){
    for(int i=0;i<v[k].size();i++){
        if(st.find(i)!=st.end()){
            st.clear();
            cnt=0;
            break;
        }
        cnt++;
        st.insert(k);
        cout<<cnt<<" ";
        go(v[k][i]);
    }
    
}/*/
int main(){
    long long n,m;
    cin>>n>>m;
    vector<long long>v[n];
    for(int i=0;i<m;i++){
        int a,b;
        cin>>a>>b;
        v[a-1].push_back(b);
    }
    long long cnt=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<v[i].size();j++){
            //cout<<v[i][j]<<" ";
            if(v[i][j]==i+2){
                cnt++;
            }
        }
    }
    for(int i=0;i<v[n-1].size();i++){
        if(v[n-1][i]==1){
            cnt++;
        }
    }
    //cout<<cnt<<" ";
    if(cnt>=n){
    cout<<"YES"<<endl;
    for(int i=1;i<=n;i++){
        cout<<i<<" ";
    }
    cout<<1;
    }
    else{
        cout<<"NO";
    }
    /*/
    set<int>st;
    long long cnt=0;
    long long k=1;
    go(k,cnt,v[n]);/*/
}
