func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, l;   int pre[200010], other[200010], last[100010];   int flag[100010];   void connect(int x, int y) {     pre[++l] = last[x];     last[x] = l;     other[l] = y;   }   int dfs(int x, int fa) {     flag[x] = 1;     int cur(0);     for (int p = last[x]; p; p = pre[p]) {       if (other[p] == fa) continue;       if (flag[other[p]] == 2) continue;       int edge;       if (!flag[other[p]])         edge = dfs(other[p], x);       else         edge = 0;       if (edge)         printf( %d %d %d n , x, other[p], edge);       else if (cur)         printf( %d %d %d n , cur, x, other[p]), cur = 0;       else         cur = other[p];     }     flag[x] = 2;     return cur;   }   int main() {     scanf( %d%d , &n, &m);     for (int i = 1; i <= m; i++) {       int x, y;       scanf( %d%d , &x, &y);       connect(x, y);       connect(y, x);     }     if (m & 1)       printf( No solution n n );     else       dfs(1, -1);     return 0;   }   