#include<iostream>
#include<algorithm>
#include<vector>
#define endl '\n'
using namespace std;
int t[100005];
vector< pair<int,int> > v;
vector<int> c[100005],r;
bool isp[100005];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n,m,a,b;
    cin>>n>>m;

    for(int i=1;i<=m;i++)
    {
        cin>>a>>b;
        c[a].push_back(i);
        c[b].push_back(i);
    }
    int prp=0;
    for(int i=1;i<=n;i++)
    {
        if(!isp[c[i][0]] && !isp[c[i][1]])
        {
            v.push_back({c[i][0],c[i][1]});
            isp[c[i][0]]=isp[c[i][1]]=1;
        }
    }
cout<<v.size()<<endl;

    for(int i=0;i<v.size();i++)
    {
        cout<<v[i].first<<" "<<v[i].second<<endl;
    }
}
