#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <string>
#include <math.h>
#include <map>
#include <set>
using namespace std;


int n, m;
int a[120000], b[120000];
int deg[10000], degin[10000];
int bm[100];

void input(){
  scanf("%d%d", &n, &m);
  for (int i=0; i<m; i++) scanf("%d%d", a+i, b+i);
  for (int i=0; i<m; i++) {
    deg[a[i]]++; deg[b[i]]++;
  }
}

void check(){
  for (int i=1; i<=n; i++) degin[i]=0;
  for (int i=0; i<m; i++)
    if (bm[i]==1) degin[b[i]]++; else degin[a[i]]++;

  bool ok=true;
  for (int i=1; i<=n; i++)
    if ((abs(deg[i]-2*degin[i])>1)) ok=false;


  if (ok){
    printf("Yes\n");
    for (int i=0; i<m; i++)
      if (bm[i]==1) printf("%d %d\n", a[i], b[i]);
        else printf("%d %d\n", b[i], a[i]);
    exit(0);
  }
}

void gen(int i){
  if (i==m) {
      check();
      return;
  }
  bm[i]=0; gen(i+1);
  bm[i]=1; gen(i+1);
}

int main(){
  //freopen("like.in", "r", stdin);
  input();
  gen(0);
  printf("No\n");
  return 0;
}
