func_code_string: #include <bits/stdc++.h>   using namespace std;   int a[7][7][101];   int d[101], t[7];   char cd[101];   bool dfs(int now, int saw, int n) {     if (saw == n) return true;     for (int i = 0; i < 7; i++)       if (a[now][i][0] > 0) {         d[saw] = a[now][i][a[now][i][0]];         cd[saw] =  + ;         a[now][i][0]--;         if (dfs(i, saw + 1, n)) return true;         a[now][i][0]++;       }     for (int i = 0; i < 7; i++)       if (a[i][now][0] > 0) {         d[saw] = a[i][now][a[i][now][0]];         cd[saw] =  - ;         a[i][now][0]--;         if (dfs(i, saw + 1, n)) return true;         a[i][now][0]++;       }     return false;   }   int main() {     int n;     cin >> n;     for (int i = 0; i < n; i++) {       int v1, v2;       cin >> v1 >> v2;       a[v1][v2][0]++;       a[v1][v2][a[v1][v2][0]] = i + 1;       t[v1]++;       t[v2]++;     }     int odd1 = -1, odd2 = -1;     for (int i = 0; i < 7; i++)       if (t[i] % 2 == 1) {         if (odd2 != -1) {           cout <<  No solution n ;           return 0;         } else if (odd1 == -1)           odd1 = i;         else           odd2 = i;       }     if (odd1 != -1 && odd2 == -1) {       cout <<  No solution n ;       return 0;     }     if (odd1 != -1) {       if (dfs(odd1, 0, n)) {         for (int i = 0; i < n; i++) cout << d[i] <<     << cd[i] << endl;         return 0;       } else {         cout <<  No solution n ;         return 0;       }     } else {       for (int i = 0; i < 7; i++)         if (t[i] > 0) {           if (dfs(i, 0, n)) {             for (int j = 0; j < n; j++) cout << d[j] <<     << cd[j] << endl;             return 0;           } else {             cout <<  No solution n ;             return 0;           }         }       cout <<  No solution n ;       return 0;     }     return 0;   }   