#include <bits/stdc++.h>
int oo[1 + (200000 + (200000 * 2 + 1)) * 2 + (200000 * 2 + 1) +
       (200000 + (200000 * 2 + 1))],
    oh[1 + (200000 + (200000 * 2 + 1)) * 2 + (200000 * 2 + 1) +
       (200000 + (200000 * 2 + 1))],
    _ = 1;
int link(int o, int h) {
  oo[_] = o, oh[_] = h;
  return _++;
}
int node(int h) {
  oh[_] = h;
  return _++;
}
int ae[(200000 * 2 + 1)], dd[(200000 * 2 + 1)];
int ij[(200000 + (200000 * 2 + 1)) + 1];
char cc[(200000 + (200000 * 2 + 1)) + 1], used[(200000 + (200000 * 2 + 1)) + 1];
int m_;
void link_(int i, int j) {
  ij[m_] = i ^ j;
  ae[i] = link(ae[i], m_), dd[i]++;
  ae[j] = link(ae[j], m_), dd[j]++;
  m_++;
}
int get(int i) {
  int o = ae[i];
  while (o && used[oh[o]]) o = oo[o];
  ae[i] = o;
  return o ? oh[o] : -1;
}
int extend(int p, int j) {
  int h;
  while ((h = get(j)) != -1) {
    used[h] = 1;
    j ^= ij[h];
    p = oo[p] = node(h);
  }
  return p;
}
void mark(int i) {
  int p, p_, k;
  ij[m_] = -1 ^ i, used[m_] = 0;
  p_ = node(m_);
  for (p = p_, i = -1; p; p = oo[p]) {
    int q = oo[p];
    oo[extend(p, i ^= ij[oh[p]])] = q;
  }
  k = 0;
  for (p = oo[p_]; p; p = oo[p]) cc[oh[p]] = k++ % 2 == 0 ? 'r' : 'b';
}
int main() {
  int m, h, i, j;
  scanf("%d", &m);
  for (h = 0; h < m; h++) {
    scanf("%d%d", &i, &j), j += 200000;
    link_(i, j);
  }
  for (i = 1; i < (200000 * 2 + 1); i++)
    if (dd[i] % 2 == 1) link_(0, i);
  for (i = 0; i < (200000 * 2 + 1); i++)
    if (get(i) != -1) mark(i);
  cc[m] = 0;
  printf("%s\n", cc);
  return 0;
}
