//Georgi Gaidarov
//Facebook /howbadcanitbe

// ako niakoi chete da znae che e goliam pich
#include <iostream>
using namespace std;

int n, m;
short int a[1000][1000];
struct ld{
    int likes;
    int likeD;};
ld l[1000];

/*
    -1 nenasocheno
    1 haresvan e pyrvia
    2 vtoria haresva tozi
*/

bool GLOBALFAIL=0;

void asoc(int p){
    ld before = l[p];

    bool who=0;
    if(l[p].likes>=l[p].likeD) who = 1;


    for(int i=0; i<n; i++){
    if(a[p][i]==-1){ //ako sa priateli P i I
        if(who){ //triaa niakoi da go haresa P
            if(l[i].likeD>=l[i].likes){// I she go haresa
                a[p][i]=1; l[p].likeD++;
                a[i][p]=2; l[i].likes++;
                return;
                } else continue;
            }


        if(!who){ //triaa si haresa nekoia ubava P
            if(l[i].likes>=l[i].likeD){// I she byde haresana che e kiflichka
                a[p][i]=2; l[p].likes++;
                a[i][p]=1; l[i].likeD++;
                return;
                } else continue;
            }

        }

    }

    if(before.likes == l[p].likes && before.likeD == l[p].likeD) GLOBALFAIL=1;
}


void printer(){
    cout<<"GLOBALFAIL is "<<GLOBALFAIL<<endl;
    for(int i=0; i<n; i++){
    for(int i2=0; i2<n; i2++)
        cout<<a[i][i2]<<' '; cout<<endl;
    }}


int main()
{
    cin>>n>>m;
    for(int i=0; i<n; i++){
        l[i].likes=0;
        l[i].likeD=0;
        for(int i2=0; i2<n; i2++) a[i][i2]=0; }


    int t1, t2;
    for(int i=0; i<m; i++){
    cin>>t1>>t2;
    a[t1-1][t2-1]=-1;
    a[t2-1][t1-1]=-1;
    }

    for(int i=0; i<n&&!GLOBALFAIL; i++)
    for(int i2=0; i2<n&&!GLOBALFAIL; i2++){
        if(a[i][i2]==-1) asoc(i);
    }


    //printer();//smiataaaaai...
    if(!GLOBALFAIL){ cout<<"Yes\n";
    for(int i=0; i<n; i++)
    for(int i2=0; i2<n; i2++){
    if(a[i][i2]==1) cout<<i+1<<' '<<i2+1<<endl;
    }}
    else cout<<"NO\n";

    return 0;
}
