#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
struct frd
{
  int x;
  int y;
};
frd f[1024];
int n,m,a[1024][1024];
void read()
{
  int k,l=0,ld=0;
  cin>>n>>m;
  for(int i=1;i<=m;i++)
  {
    cin>>f[i].x>>f[i].y;
    a[f[i].x][0]++;
    a[f[i].y][1]++;
  }
  for(int i=1;i<=m;i++)
  {
    if(a[f[i].y][0]==0&&a[f[i].y][1]>1)
    {
      if(a[f[i].x][0]>1||a[f[i].x][1]<=1)
      {
      a[f[i].x][0]--;
      a[f[i].x][1]++;
      a[f[i].y][0]++;
      a[f[i].y][1]--;
      k=f[i].x;
      f[i].x=f[i].y;
      f[i].y=k;
      }
    }
  }
  for(int i=1;i<=m;i++)
  {
    if(a[f[i].y][0]==0&&a[f[i].y][1]>1) { cout<<"No"<<endl; l++; break; }
  }
  if(!l)
  {
    for(int i=1;i<=m;i++)
    {
      if(a[f[i].x][0]>a[f[i].x][1])
      {
        if(a[f[i].x][0]-a[f[i].x][1]>1)
        {
          if(a[f[i].y][1]>=a[f[i].y][0])
          {
            a[f[i].x][0]--;
            a[f[i].x][1]++;
            a[f[i].y][0]++;
            a[f[i].y][1]--;
            k=f[i].x;
            f[i].x=f[i].y;
            f[i].y=k;
          }
        }
      }
    }
    for(int i=1;i<=n;i++)
    {
      if((abs(a[i][0]-a[i][1])>1)) { cout<<"No"<<endl; ld=1; break; }
    }
    if(!ld)
    {
      cout<<"Yes"<<endl;
      for(int i=1;i<=m;i++)
      {
        cout<<f[i].x<<" "<<f[i].y<<endl;
      }
    }
  }
}
int main()
{
  read();
  return 0;
}
