#include <iostream>
#include <math.h>

using namespace std;

int m, n, gr[1000][1000], a, b, i, j, sb[1000], r[1000], u[1000];

int main ()
{
    cin >> n >> m;
    memset (gr, 9999, sizeof(gr));
    for (i = 0; i < m; i++)
      {
        cin >> a >> b;
        gr[--a][--b] = gr[b][a] = 0, r[a]++, r[b]++;
      }
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
          {
            if (i == j || gr[i][j] != 0) continue;
            if (r[i]-- > u[i]++ || sb[i] < 0) sb[i]++, sb[j]--, gr[i][j] = 1, gr[j][i] = -1;
            else sb[i]--, sb[j]++, gr[i][j] = -1, gr[j][i] = 1;
            r[j]--, u[j]++;
          }
    for (i = 0; i < n; i++)
        if (abs(sb[i]) > 1)
          {
            cout << "NO\n";
            return 0;
          }
    cout << "YES\n";
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            if (gr[i][j] == 1) printf ("%i %i\n", i+1, j+1);
cin >> a;
}
