#include <bits/stdc++.h>
using namespace std;
bool vst[800012], vis[800012];
int k, tmp = 1, cx, cy, nx, ny, head[800012], x[800012], y[800012], tx[800012],
       ty[800012], in[800012], co[800012], ans[800012];
struct edge {
  int u, v, nxt;
} e[800012];
void adde(int, int);
void dfs(int);
inline int read() {
  int x = 0;
  char ch = getchar();
  while (ch < '0' || ch > '9') ch = getchar();
  while (ch >= '0' && ch <= '9') {
    x = (x << 1) + (x << 3) + (ch ^ 48);
    ch = getchar();
  }
  return x;
}
int main() {
  int i;
  k = read();
  for (i = 1; i <= k; ++i) {
    x[i] = read();
    y[i] = read();
  }
  for (i = 1; i <= k; ++i) {
    adde(x[i], 200000 + y[i]);
    adde(200000 + y[i], x[i]);
  }
  for (i = 1; i <= 400000; ++i)
    if (in[i] & 1) adde(0, i), adde(i, 0);
  for (i = 1; i <= 400000; ++i) dfs(i);
  for (i = 1; i <= k; ++i) putchar(co[i] ? 'r' : 'b');
  return 0;
}
void dfs(int u) {
  for (int &i = head[u], m; i; i = e[i].nxt)
    if (!vis[m = i >> 1]) {
      vis[m] = 1;
      if (m <= k) co[m] = i & 1;
      dfs(e[i].v);
    }
}
void adde(int u, int v) {
  ++tmp;
  ++in[v];
  e[tmp].u = u;
  e[tmp].v = v;
  e[tmp].nxt = head[u];
  head[u] = tmp;
}
