func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1000 * 300 + 100;   vector<pair<int, int> > v[N], e;   pair<int, int> dir[N];   bool mark[N], mark2[N], use[N];   void sfd(int p) {     mark2[p] = true;     for (int i = 0; i < v[p].size(); i++) {       int id = v[p][i].second, q = v[p][i].first;       if (use[id] == false && mark2[q] == false) {         use[id] = true;         dir[id].first = q;         dir[id].second = p;         sfd(q);       } else if (dir[id].first == q && mark2[q] == false) {         sfd(q);       }     }   }   void dfs(int p) {     mark[p] = true;     for (int i = 0; i < v[p].size(); i++) {       int id = v[p][i].second, q = v[p][i].first;       if (mark[q] == false) {         dir[id].first = p;         dir[id].second = q;         use[id] = true;         dfs(q);       }     }   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     int n, m;     cin >> n >> m;     for (int i = 0; i < m; i++) {       int a, b;       cin >> a >> b;       v[a].push_back(make_pair(b, i));       v[b].push_back(make_pair(a, i));       e.push_back(make_pair(a, b));     }     dfs(1);     sfd(1);     for (int i = 1; i <= n; i++)       if (mark[i] == false || mark2[i] == false) {         cout << 0;         return 0;       }     for (int i = 0; i < m; i++) {       if (use[i])         cout << dir[i].first <<     << dir[i].second <<   n ;       else         cout << e[i].first <<     << e[i].second <<   n ;     }     return 0;   }   