func_code_string: #include <bits/stdc++.h>   using namespace std;   map<pair<long long, long long>, bool> blocked;   vector<vector<pair<long long, long long> > > graph;   vector<bool> used;   int part(int v) {     vector<long long> adj;     for (int i = 0; i < graph[v].size(); i++) {       long long w = graph[v][i].first;       long long ui = graph[v][i].second;       if (!used[ui]) {         adj.push_back(w);         used[ui] = true;       }     }     long long lst = 0;     for (int i = 0; i < adj.size(); i++) {       long long w = part(adj[i]);       if (w == 0) {         if (lst == 0) {           lst = adj[i];         } else {           cout << lst <<     << v <<     << adj[i] <<   n ;           lst = 0;         }       } else {         cout << v <<     << adj[i] <<     << w <<   n ;       }     }     return lst;   }   int main() {     int n, m;     cin >> n >> m;     graph.resize(n + 1);     used.resize(m);     for (int i = 0; i < m; i++) {       long long a, b;       cin >> a >> b;       graph[a].push_back(make_pair(b, i));       graph[b].push_back(make_pair(a, i));     }     if (m % 2 == 1) {       cout <<  No solution             <<   n ;     } else {       part(1);     }     return 0;   }   