func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 4e5 + 5;   int head[maxn], e[maxn << 1], nxt[maxn << 1], cnt = 1;   void addedge(int u, int v) {     e[++cnt] = v, nxt[cnt] = head[u], head[u] = cnt;     e[++cnt] = u, nxt[cnt] = head[v], head[v] = cnt;   }   int s[maxn], t[maxn];   int f[maxn], num;   int d[maxn];   int n, C = 2e5;   void dfs(int u) {     while (head[u] && f[head[u] >> 1]) head[u] = nxt[head[u]];     if (head[u]) {       f[head[u] >> 1] = ++num;       dfs(e[head[u]]);     }   }   int main() {     scanf( %d , &n);     for (int i = 1, x, y; i <= n; i++) {       scanf( %d%d , &x, &y);       d[x]++, d[y + C]++;       s[i] = x, t[i] = y + C;       addedge(x, y + C);     }     int last, tot = 0;     for (int i = 1; i <= 2 * C; i++)       if (d[i] % 2) addedge(i, 2 * C + 1);     dfs(2 * C + 1);     for (int i = 1; i <= 2 * C; i++) dfs(i);     memset(d, 0, sizeof(d));     for (int i = 1; i <= n; i++) {       if (f[i] % 2)         d[s[i]]++, d[t[i]]++;       else         d[s[i]]--, d[t[i]]--;     }     for (int i = 1; i <= 2 * C; i++)       if (d[i] > 1 || d[i] < -1) {         printf( shaleba n );         return 0;       }     for (int i = 1; i <= n; i++) {       if (f[i] % 2)         printf( r );       else         printf( b );     }     return 0;   }   