#include <bits/stdc++.h>
using namespace std;
const int INF = (int)1e9;
vector<set<pair<int, int> > > g;
vector<int> ans;
void dfs(int v, int cl) {
  if (g[v].size() == 0) {
    return;
  }
  pair<int, int> e = *(g[v].begin());
  g[v].erase(e);
  ans[e.second] = cl;
  g[e.first].erase(make_pair(v, e.second));
  dfs(e.first, 1 - cl);
}
int main() {
  int n;
  cin >> n;
  ans.resize(n);
  vector<pair<int, int> > pnt(n);
  vector<int> xs(n), ys(n);
  for (int i = 0; i < n; ++i) {
    cin >> pnt[i].first >> pnt[i].second;
    pnt[i].second += INF;
    xs[i] = pnt[i].first;
    ys[i] = pnt[i].second;
  }
  sort(xs.begin(), xs.end());
  xs.resize(unique(xs.begin(), xs.end()) - xs.begin());
  sort(ys.begin(), ys.end());
  ys.resize(unique(ys.begin(), ys.end()) - ys.begin());
  map<int, int> ver;
  int c = 0;
  for (int i = 0; i < (int)xs.size(); ++i) {
    ver[xs[i]] = c;
    ++c;
  }
  for (int i = 0; i < (int)ys.size(); ++i) {
    ver[ys[i]] = c;
    ++c;
  }
  g.resize(c);
  for (int i = 0; i < n; ++i) {
    g[ver[pnt[i].first]].insert(make_pair(ver[pnt[i].second], i));
    g[ver[pnt[i].second]].insert(make_pair(ver[pnt[i].first], i));
  }
  int cur = 1;
  for (int i = 0; i < c; ++i) {
    while (g[i].size() > 0) {
      dfs(i, cur);
      cur = 1 - cur;
    }
  }
  for (int i = 0; i < n; ++i) {
    if (ans[i] == 0) {
      cout << 'b';
    } else {
      cout << 'r';
    }
  }
  cout << endl;
  return 0;
}
