#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;
}
