#include <bits/stdc++.h>
using namespace std;
long long read() {
  long long a = 0, fh = 1;
  char c = getchar();
  while (c > '9' || c < '0') {
    if (c == '-') fh = -1;
    c = getchar();
  }
  while ('0' <= c && c <= '9') {
    a = a * 10 + c - 48;
    c = getchar();
  }
  return a * fh;
}
long long T, n;
const long long N = 200000;
vector<pair<long long, long long> > e[600005];
long long vis[600005], vise[600005], ans[600005], lst[600005];
long long U[600005], V[600005];
void dfs(long long first) {
  vis[first] = 1;
  for (long long i = lst[first] + 1; i < e[first].size();
       i = max(i + 1, lst[first] + 1)) {
    long long v = e[first][i].first, id = e[first][i].second;
    lst[first] = i;
    if (vise[id]) continue;
    vise[id] = 1;
    ans[id] = (first <= N);
    dfs(v);
  }
}
signed main() {
  n = read();
  for (long long i = 1; i <= n; ++i) {
    long long u = read(), v = read();
    U[i] = u, V[i] = v;
    e[u].push_back(make_pair(v + N, i));
    e[v + N].push_back(make_pair(u, i));
  }
  long long m = n;
  for (long long i = 1; i <= (N << 1); ++i)
    if (e[i].size() & 1) {
      e[i].push_back(make_pair(N << 1 | 1, ++m));
      e[N << 1 | 1].push_back(make_pair(i, m));
      U[m] = i;
      V[m] = N << 1 | 1;
    }
  for (long long i = 1; i <= (N << 1 | 1); ++i) lst[i] = -1;
  for (long long i = 1; i <= (N << 1); ++i)
    if (!vis[i]) dfs(i);
  for (long long i = 1; i <= n; ++i) putchar(ans[i] ? 'b' : 'r');
  return 0;
}
