#include<iostream>
#include<vector>
#include<stdio.h>
#include<queue>
using namespace std;

vector <int> cons[1001];
bool used[1001];
int liked[1001];
int likes[1001];

vector <int> newc[1001];

void bfs(int start)
{
  queue <int> visit;
  visit.push(start);
  used[start] = true;
  while(!visit.empty())
  {
    int current = visit.front();
    visit.pop();
    for(int i=0; i<visit.size(); i++)
    {
      if(!used[cons[current][i]])
      {
        visit.push(cons[current][i]);
        used[cons[current][i]] = true;

        newc[current].push_back(cons[current][i]);
        newc[cons[current][i]].push_back(current);
      }
    }
  }
}

int main()
{
  int n, m;
  cin>>n>>m;
  for(int i=0; i<m; i++)
  {
    int a,b;
    scanf("%d%d",&a,&b);
    cons[a].push_back(b);
    cons[b].push_back(a);
  }

  cout<<"Yes\n";
  for(int i=0; i<n;i++)
  {
    int current = i;
    for(int j=0; j<newc[i].size(); j++)
    {
      cout<<current<<" "<<newc[i][j]<<"\n";
    }
  }

  return 0;
}