#include<iostream>
#include<vector>
using namespace std;
int used[1024][1024],m,n,d,l=0,c=1,a[110000][2],b[110000][2];
vector<int>v[1024];
void read()
{
    int i,az,bz;
    cin>>n>>m;
    for(i=0;i<m;i++)
    {
        scanf("%d %d", &az, &bz);
        v[az].push_back(bz);
        v[bz].push_back(az);
        used[az][bz]=2;
        used[bz][az]=2;
        b[i+1][1]=az;
        b[i+1][2]=bz;
    }
}
void solve(int i)
{
    int sz,k;
    sz=v[i].size();
    for(k=0;k<sz;k++)
    {
        if(used[i][v[i][k]]!=1)
        {
            used[i][v[i][k]]=1;
            used[v[i][k]][i]=1;
            a[c][1]=i;
            a[c][2]=v[i][k];
            c++;
            d=v[i][k];
            break;
        }
        if(k==sz-1) l=1;
    }
}
int main()
{
    int k,q,p,h,g,br1,br2;
    read();
    cout<<"Yes"<<endl;
    for(k=1;k<m;k++)
    used[k][k]=1;
    solve(1);
    while(l!=1) solve(d);
    for(p=1;p<=m;p++)
    for(q=1;q<=m;q++)
    if(used[p][q]==2)
    {
        for(g=1;g<=m;g++)
        if(used[p][g]==1) br1++;
        for(h=1;h<=m;h++)
        if(used[h][q]==1) br2++;
        if(br1>=br2) {a[c][1]=p; a[c][2]=q; c++;}
        else {a[c][1]=q; a[c][2]=p; c++;}
        used[p][q]=1;
        used[q][p]=1;
    }
    for(p=1;p<=m;p++)
    for(q=1;q<=m;q++)
    {
        if(b[p][1]==a[q][1]||b[p][1]==a[q][2])
        if(b[p][2]==a[q][1]||b[p][2]==a[q][2])
        cout<<a[q][1]<<" "<<a[q][2]<<endl;
    }
    return 0;
}