#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
const int M = 4 * N;
char ans[N];
int deg[N + N];
int to[M], NEXT[M], id[M], head[N + N], nedge;
bool used[M], was[N + N];
vector<int> path;
void addEdge(int u, int v, int i) {
  to[nedge] = v, id[nedge] = i, NEXT[nedge] = head[u], head[u] = nedge++;
  to[nedge] = u, id[nedge] = i, NEXT[nedge] = head[v], head[v] = nedge++;
  deg[u] = 1 - deg[u];
  deg[v] = 1 - deg[v];
}
void dfs(int u, int eid) {
  for (int &i = head[u]; i >= 0; i = NEXT[i]) {
    if (used[i]) continue;
    used[i] = 1;
    used[i ^ 1] = 1;
    dfs(to[i], id[i]);
  }
  was[u] = 1;
  path.push_back(eid);
}
int main() {
  memset(head, -1, sizeof head);
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    int x, y;
    scanf("%d %d", &x, &y);
    y += N;
    addEdge(x, y, i);
  }
  int hoppaX = N, hoppaY = N - 1;
  for (int i = 1; i < N - 1; ++i) {
    if (deg[i] & 1) addEdge(i, hoppaY, N - 1);
    if (deg[i + N] & 1) addEdge(hoppaX, i + N, N - 1);
  }
  if (deg[hoppaX] & 1) addEdge(hoppaX, hoppaY, N - 1);
  for (int i = 1; i < N; ++i) {
    if (!was[i] && head[i] != -1) {
      path.clear();
      dfs(i, N - 1);
      int p = 0;
      for (int j : path) {
        ans[j] = p ? 'r' : 'b';
        p = 1 - p;
      }
    }
  }
  puts(ans);
  return 0;
}
