func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 200005;   multiset<int> gr[maxn];   vector<int> order, odd;   int n, m;   void go(int cur) {     for (auto it = gr[cur].begin(); gr[cur].size() != 0; it = gr[cur].begin()) {       int v = *it;       gr[cur].erase(it);       gr[v].erase(gr[v].find(cur));       go(v);     }     order.push_back(cur);   }   int main() {     scanf( %d%d , &n, &m);     for (int i = 0; i < m; i++) {       int a, b;       scanf( %d%d , &a, &b);       a--, b--;       gr[a].insert(b);       gr[b].insert(a);     }     for (int i = 0; i < n; i++)       if (gr[i].size() % 2 != 0) odd.push_back(i);     for (int i = 0; i < (int)odd.size() / 2; i++) {       gr[odd[2 * i]].insert(odd[2 * i + 1]);       gr[odd[2 * i + 1]].insert(odd[2 * i]);     }     if ((odd.size() / 2 + m) % 2 == 1) {       gr[0].insert(0);       gr[0].insert(0);     }     go(0);     printf( %d n , order.size() - 1);     for (int i = 0; i < (int)order.size() - 1; i++) {       if (i % 2 == 0)         printf( %d %d n , order[i] + 1, order[i + 1] + 1);       else         printf( %d %d n , order[i + 1] + 1, order[i] + 1);     }     return 0;   }   