← Home
#include<bits/stdc++.h>
using namespace std;
enum{N=100009};
vector<pair<int,int>>e[N];
int d[N],o;
bool v[N*3];
void add(int x,int y){++o,e[x].push_back({y,o}),e[y].push_back({x,o}),++d[x],++d[y];}
void dfs(int x){
	while(1){
		while(e[x].size()&&v[e[x].back().second])e[x].pop_back();
		if(e[x].empty())return;
		int y=e[x].back().first;
		v[e[x].back().second]=1,dfs(y);
		if((++o)&1)cout<<x<<' '<<y<<'\n';
		else cout<<y<<' '<<x<<'\n';
	}
}
int main(){ios::sync_with_stdio(0);cin.tie(0);
	int n,m,i,j,la=0;
	cin>>n>>m;
	while(m--)cin>>i>>j,add(i,j);
	for(i=1;i<=n;++i)if(d[i]&1){if(la)add(i,la),la=0;else la=i;}
	if(o&1)add(1,1);
	cout<<o<<'\n',dfs(1);
	return 0;
}