func_code_string: #include <bits/stdc++.h>   using namespace std;   long long getint() {     long long _x = 0, _tmp = 1;     char _tc = getchar();     while ((_tc <  0  || _tc >  9 ) && _tc !=  - ) _tc = getchar();     if (_tc ==  - ) _tc = getchar(), _tmp = -1;     while (_tc >=  0  && _tc <=  9 ) _x *= 10, _x += (_tc -  0 ), _tc = getchar();     return _x * _tmp;   }   long long mypow(long long _a, long long _x, long long _mod) {     if (_x == 0) return 1ll;     long long _tmp = mypow(_a, _x / 2, _mod);     _tmp = (_tmp * _tmp) % _mod;     if (_x & 1) _tmp = (_tmp * _a) % _mod;     return _tmp;   }   bool equal(double _x, double _y) { return _x > _y - 1e-7 && _x < _y + 1e-7; }   int __ = 1, cs;   int n, m, deg[100010];   multiset<int> S[100010];   vector<int> odd;   void build() {}   void init() {     n = getint();     m = getint();     while (m--) {       int u, v;       u = getint();       v = getint();       S[u].insert(v);       S[v].insert(u);       deg[u]++;       deg[v]++;     }     for (int i = 1; i <= n; i++)       if (deg[i] % 2) odd.push_back(i);     if ((int)odd.size() % 2) assert(1 == 0);     for (int i = 0, j = (int)odd.size() - 1; i < j; i++, j--) {       S[odd[i]].insert(odd[j]);       S[odd[j]].insert(odd[i]);     }   }   vector<pair<int, int> > ans;   int got;   void DFS(int now) {     while (S[now].size()) {       multiset<int>::iterator it = S[now].begin();       int des = *it;       S[now].erase(S[now].find(des));       S[des].erase(S[des].find(now));       DFS(des);       got++;       if (got % 2)         ans.push_back(make_pair(des, now));       else         ans.push_back(make_pair(now, des));     }   }   void find_circle() {     for (int i = 1; i <= n; i++)       while ((int)S[i].size() > 0) {         got = 0;         DFS(i);         if (got % 2) ans.push_back(make_pair(i, i));       }   }   void solve() {     find_circle();     printf( %d n , (int)ans.size());     for (int i = 0; i < (int)ans.size(); i++)       printf( %d %d n , ans[i].first, ans[i].second);   }   int main() {     build();     while (__--) {       init();       solve();     }   }   