#include <bits/stdc++.h>
using namespace std;
template <typename tn>
void read(tn &a) {
  tn x = 0, f = 1;
  char c = ' ';
  for (; !isdigit(c); c = getchar())
    if (c == '-') f = -1;
  for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';
  a = x * f;
}
const int N = 401000;
int d[N], head[N], cur[N], tot, n, X[N], Y[N];
struct edge {
  int v, nxt, ban;
} e[N * 2];
vector<int> ans;
set<pair<int, int> > S;
void add(int x, int y) {
  d[x]++;
  e[++tot] = {y, head[x]};
  head[x] = tot;
}
void solve(int x) {
  for (int &i = cur[x]; i; i = e[i].nxt)
    if (!e[i].ban) {
      e[i].ban = e[i ^ 1].ban = 1;
      solve(e[i].v);
    }
  ans.push_back(x);
}
int main() {
  read(n);
  tot = 1;
  int del = 200000;
  for (int i = 1; i <= n; i++) {
    int x, y;
    read(x);
    read(y);
    add(x, y + del);
    add(y + del, x);
    X[i] = x;
    Y[i] = y;
  }
  int lst = 0;
  for (int i = 1; i <= 2 * del; i++)
    if (d[i] & 1)
      if (lst)
        add(i, lst), add(lst, i), lst = 0;
      else
        lst = i;
  memcpy(cur, head, sizeof(head));
  for (int i = 1; i <= 2 * del; i++)
    if (cur[i]) {
      ans.clear();
      solve(i);
      for (int j = 0; j + 1 < ans.size(); j++)
        S.insert(make_pair(ans[j], ans[j + 1]));
    }
  for (int i = 1; i <= n; i++)
    if (S.count(make_pair(X[i], Y[i] + del)))
      putchar('b');
    else
      putchar('r');
  return 0;
}
