func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m;   vector<int> g[100005];   int vis[100005];   vector<vector<int> > r;   bool dfs(int x, int f) {     vis[x] = 1;     int k = -1;     for (int y : g[x]) {       if (y == f) continue;       if (vis[y] > 0 || !vis[y] && !dfs(y, x)) {         if (k < 0)           k = y;         else           r.push_back({k, x, y}), k = -1;       }     }     vis[x] = -1;     if (k >= 0) {       r.push_back({k, x, f});       return true;     }     return false;   }   int main() {     scanf( %d%d , &n, &m);     for (int _ = 0, ThxDem = m; _ < ThxDem; ++_) {       int x, y;       scanf( %d%d , &x, &y);       x--;       y--;       g[x].push_back(y);       g[y].push_back(x);     }     for (int i = 0, ThxDem = n; i < ThxDem; ++i)       if (!vis[i] && dfs(i, -1)) {         puts( No solution );         return 0;       }     for (auto v : r) printf( %d %d %d n , v[0] + 1, v[1] + 1, v[2] + 1);     return 0;   }   