#include<iostream>
#include<vector>
using namespace std;
struct bro
{
    int vz,iz;
};
vector<int>v[1024];
bro br[1024];
int n,m,a[1024][1024],used[1024];
void read()
{
    int i;
    int p1,p2;
    cin>>n>>m;
    for(i=0;i<m;i++)
    {
        cin>>p1>>p2;
        a[p1][p2]=a[p2][p1]=1;
        v[p1].push_back(p2);
        v[p2].push_back(p1);
    }
}
void DFS(int i)
{
    int j,sz;
    used[i]=1;
    sz=v[i].size();
    for(j=0;j<sz;j++)
    {
        if(a[i][v[i][j]]==1)
        {
            //cout<<"in"<<" ";
            a[i][v[i][j]]=2;
            a[v[i][j]][i]=0;
            br[i].iz++;
            br[v[i][j]].vz++;
            DFS(v[i][j]);
        }
    }
}
int main()
{
    int i;
    int t;
    read();
    for(i=1;i<=n;i++) if(!used[i]) DFS(i);
    int j;
    //for(i=1;i<=n;i++)
    //{
      //  for(j=1;j<=n;j++)
        //{
          //  if(a[i][j]==2)
            //{
             //   br[i].iz++;
               // br[j].vz++;
            //}
        //}
    //}
    for(t=1;t<=n;t++)
    {
        if((br[t].vz-br[t].iz>1)||(br[t].vz-br[t].iz<-1))
        {
            break;
        }
    }
    if(t<=n) cout<<"No"<<endl;
    else
    {
        cout<<"Yes"<<endl;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                if(a[i][j]==2)
                {
                    cout<<i<<" "<<j<<endl;
                }
            }
        }
    }
}
