#include <bits/stdc++.h>
using namespace std;
const int MAXN = (int)4e5 + 10, L = (int)2e5;
set<pair<int, int> > e[MAXN];
vector<int> Tohka;
int n, d[MAXN], col[MAXN];
bool used[MAXN];
void DFS(int first) {
  for (set<pair<int, int> >::iterator it = e[first].begin();
       it != e[first].end();) {
    int second = it->first, id = it->second;
    e[first].erase(it);
    e[second].erase(make_pair(first, id));
    --d[first], --d[second];
    DFS(second);
    Tohka.push_back(id);
    it = e[first].begin();
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    int first, second;
    scanf("%d%d", &first, &second);
    second += L;
    ++d[first], ++d[second];
    e[first].insert(make_pair(second, i));
    e[second].insert(make_pair(first, i));
  }
  int N = n;
  for (int i = 1; i <= L; ++i)
    if (d[i] & 1)
      ++d[i], ++d[L * 2 + 1], ++n, e[i].insert(make_pair(L * 2 + 1, n)),
          e[L * 2 + 1].insert(make_pair(i, n));
  for (int i = L + 1; i <= L * 2; ++i)
    if (d[i] & 1) {
      ++d[i];
      ++d[L * 2 + 2];
      ++n;
      e[i].insert(make_pair(L * 2 + 2, n));
      e[L * 2 + 2].insert(make_pair(i, n));
    }
  if (d[L * 2 + 1] & 1)
    ++n, e[L * 2 + 1].insert(make_pair(L * 2 + 2, n)),
        e[L * 2 + 2].insert(make_pair(L * 2 + 1, n));
  for (int i = 1; i <= L; ++i)
    if (d[i]) DFS(i);
  for (int i = 0; i < ((int)(Tohka).size()); ++i) col[Tohka[i]] = i & 1;
  for (int i = 1; i <= N; ++i) printf("%c", ((col[i] & 1) ? 'r' : 'b'));
  puts("");
  fclose(stdin);
  fclose(stdout);
  return 0;
}
