#include <bits/stdc++.h>
int inp() {
  char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  int sum = 0;
  while (c >= '0' && c <= '9') {
    sum = sum * 10 + c - '0';
    c = getchar();
  }
  return sum;
}
bool used[200010], c[200010];
int head[200010], nxt[1600010], end[1600010];
std::vector<int> vecx[200010], vecy[200010];
int cou = 0;
void link(int a, int b) {
  nxt[++cou] = head[a];
  head[a] = cou;
  end[cou] = b;
}
void dfs(int cur) {
  used[cur] = true;
  for (int x = head[cur]; x != -1; x = nxt[x]) {
    if (!used[end[x]]) {
      c[end[x]] = c[cur] ^ 1;
      dfs(end[x]);
    }
  }
}
int main() {
  memset(head, -1, sizeof(head));
  int n = inp();
  for (int i = 1; i <= n; i++) {
    int x = inp();
    int y = inp();
    vecx[x].push_back(i);
    vecy[y].push_back(i);
  }
  for (int i = 1; i <= 200000; i++)
    for (int j = 0; j < (int)(vecx[i].size() - 1); j += 2) {
      link(vecx[i][j], vecx[i][j + 1]);
      link(vecx[i][j + 1], vecx[i][j]);
    }
  for (int i = 1; i <= 200000; i++)
    for (int j = 0; j < (int)(vecy[i].size() - 1); j += 2) {
      link(vecy[i][j], vecy[i][j + 1]);
      link(vecy[i][j + 1], vecy[i][j]);
    }
  for (int i = 1; i <= n; i++) {
    if (!used[i]) dfs(i);
    if (c[i])
      putchar('r');
    else
      putchar('b');
  }
  putchar('\n');
}
