#include <bits/stdc++.h>
using namespace std;
int read() {
  char c = getchar();
  int flag = 1, ans = 0;
  while (c < '0' || c > '9') {
    if (c == '-') flag = -flag;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    ans = ans * 10 + c - '0';
    c = getchar();
  }
  return ans * flag;
}
const long long INF = 1e16;
const int MAXN = 200020;
const int MOD = 998244353;
int head[MAXN << 1], deg[MAXN << 1], vis[MAXN << 1], V[MAXN << 1];
int n, cnt = 1;
struct Edge {
  int to;
  int nxt;
} e[MAXN << 2];
void AddEdge(int from, int to) {
  e[++cnt].to = to;
  e[cnt].nxt = head[from];
  head[from] = cnt;
}
void dfs(int u) {
  for (int &i = head[u]; i; i = e[i].nxt) {
    int v = e[i].to;
    if (!vis[i >> 1]) {
      vis[i >> 1] = 1 + (u < MAXN);
      dfs(v);
    }
  }
}
int main() {
  n = read();
  for (int i = 1; i <= n; ++i) {
    int x, y;
    x = read(), y = read();
    AddEdge(x, y + MAXN);
    AddEdge(y + MAXN, x);
    ++deg[x], ++deg[y + MAXN];
  }
  for (int i = 1; i < MAXN << 1; ++i)
    if (deg[i] & 1) AddEdge(0, i), AddEdge(i, 0);
  for (int i = 1; i < MAXN; ++i) dfs(i);
  for (int i = 1; i <= n; ++i) putchar("br"[vis[i] - 1]);
  return 0;
}
