#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
int data[1010][1010];
int ball[1010];
bool used[1010];
struct out
{
    int a;int b;int pos;
};
out put[100010];
vector<int> spis[1010];
out ns[100010];
int n,m,br;
void dfs(int t,int father)
{
    br--;
    used[t]=1;
    int k;
    for(int i=0;i<spis[t].size();i++)
    if(spis[t][i]!=-1)
    if(used[spis[t][i]]==0)
    {
        if(ball[t]+ball[spis[t][i]]>=-1&&ball[t]+ball[spis[t][i]]<=1)
        {
            m--;
            k=spis[t][i];
            spis[t][i]=-1;
            if(ball[t]!=-1)
            {
                if(ball[k]!=1)
                {
                    put[m].a=t;
                    put[m].b=k;
                    put[m].pos=data[k][t];
                    ball[k]++;
                    ball[t]--;
                    dfs(k,t);
                }else
                {
                    put[m].a=k;
                    put[m].b=t;
                    put[m].pos=data[k][t];
                    ball[k]--;
                    ball[t]++;
                    dfs(k,t);
                }
            }else
            {
                put[m].a=k;
                put[m].b=t;
                put[m].pos=data[k][t];
                ball[k]--;
                ball[t]++;
                dfs(k,t);
            }
        }
    }else if(spis[t][i]==father) spis[t][i]=-1;
    return;
}
bool f(out x,out y)
{
    if(x.pos<y.pos) return 0; else return 1;
}
int main()
{
    int a,b;
    scanf("%d %d",&n,&m);
    for(int i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        spis[a-1].push_back(b-1);
        spis[b-1].push_back(a-1);
        data[a-1][b-1]=i;
        data[b-1][a-1]=i;
    }
    a=m;
    while(m)
    {
        br=n;b=m;
        memset(used,0,sizeof(used));
        while(br)
        {
            for(int i=0;i<n;i++)
            if(used[i]==0) dfs(i,-2);
        }
      /*   printf("Yes\n");
            for(int i=0;i<n;i++)
            for(int j=0;j<ns[i].size();j++)
            printf("%d %d\n",i+1,ns[i][j]+1);
            printf("ball\n");
            for(int i=0;i<n;i++)
            printf("%d %d\n",i+1,ball[i]);*/
        if(m==b)
        {
            printf("No\n");
            return 0;
        }

    }
    sort(ns,ns+a,f);
    printf("Yes\n");
    for(int i=0;i<a;i++)
    printf("%d %d\n",put[i].a+1,put[i].b+1);
}
