#include <bits/stdc++.h>
using namespace std;
const int S = 200005;
const int N = 400100;
char s[N];
bitset<N> bad;
vector<int> g[N];
vector<int> circ;
int n, m, deg[N], U[N], V[N];
void hierholzer(int src) {
  if (!deg[src]) return;
  vector<int> path;
  vector<int> edge;
  path.push_back(src);
  int at = src, last = -1;
  while (!path.empty()) {
    if (deg[at]) {
      path.push_back(at);
      while (bad[g[at].back()]) g[at].pop_back();
      int e = g[at].back(), nxt = U[e] ^ at ^ V[e];
      bad[e] = 1, --deg[at], --deg[nxt], at = nxt;
      edge.push_back(e);
    } else {
      if (!edge.empty()) {
        circ.push_back(edge.back()), edge.pop_back();
      }
      at = path.back(), path.pop_back();
    }
  }
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    scanf("%d %d", U + i, V + i);
    V[i] += S;
    g[U[i]].push_back(i);
    g[V[i]].push_back(i);
    ++deg[U[i]], ++deg[V[i]];
  }
  vector<int> odd_l, odd_r;
  for (int i = 1; i < S; ++i) {
    if (deg[i] & 1) odd_l.push_back(i);
    if (deg[i + S] & 1) odd_r.push_back(i + S);
  }
  int m = n;
  while (!odd_l.empty() and !odd_r.empty()) {
    ++m, U[m] = odd_l.back(), V[m] = odd_r.back();
    odd_l.pop_back(), odd_r.pop_back();
    g[U[m]].push_back(m);
    g[V[m]].push_back(m);
    ++deg[U[m]], ++deg[V[m]];
  }
  while (!odd_l.empty()) {
    ++m, U[m] = odd_l.back(), V[m] = S + S;
    odd_l.pop_back();
    g[U[m]].push_back(m);
    g[V[m]].push_back(m);
    ++deg[U[m]], ++deg[V[m]];
  }
  while (!odd_r.empty()) {
    ++m, U[m] = S, V[m] = odd_r.back();
    odd_r.pop_back();
    g[U[m]].push_back(m);
    g[V[m]].push_back(m);
    ++deg[U[m]], ++deg[V[m]];
  }
  for (int i = 1; i < N; ++i) {
    if (!deg[i]) continue;
    circ.clear(), hierholzer(i);
    int color = 0;
    for (int x : circ) {
      s[x] = color ? 'b' : 'r';
      color ^= 1;
    }
  }
  s[n + 1] = 0;
  puts(s + 1);
  return 0;
}
