#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
const long long INF = 1e9 + 19;
int n;
long long a[N];
int use[N];
long long mx = 0;
void read() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%lld", &a[i]);
    mx = max(mx, a[i]);
  }
}
vector<pair<long long, int> > f;
int getMex() {
  int cur = 0;
  for (; use[cur] > 0; cur++)
    ;
  assert(cur < 100);
  return cur;
}
set<pair<long long, int> > q;
void add(long long pos, int val) {
  if (pos * 1.0 * pos < 1e18) q.insert(make_pair(pos * pos, val + 1));
  long long r = pos - 1;
  if (r * 1.0 * r * r * r < 1e18)
    q.insert(make_pair(r * r * r * r + 1, -(f.back().second + 1)));
  f.push_back(make_pair(pos, val));
}
void solve() {
  f.push_back(make_pair(0, 0));
  use[0]++;
  add(4, 1);
  while (f.back().first <= mx) {
    assert(!q.empty());
    long long t = q.begin()->first;
    int type = q.begin()->second;
    q.erase(q.begin());
    if (type < 0) {
      use[-type - 1]--;
      assert(use[-type - 1] >= 0);
    }
    if (type > 0) {
      use[type - 1]++;
    }
    add(t, getMex());
  }
  int res = 0;
  for (int i = 0; i < n; i++) {
    int pos =
        lower_bound(f.begin(), f.end(), make_pair(a[i], (int)INF)) - f.begin();
    pos--;
    assert(pos >= 0);
    assert(f[pos].first <= a[i]);
    if (pos + 1 < (int)f.size()) assert(a[i] < f[pos + 1].first);
    res ^= f[pos].second;
  }
  if (res == 0)
    puts("Rublo");
  else
    puts("Furlo");
}
void stress() {}
int main() {
  if (1) {
    int k = 1;
    for (int tt = 0; tt < k; tt++) {
      read();
      solve();
    }
  } else {
    stress();
  }
  return 0;
}
