#include <bits/stdc++.h>
size_t mex(std::unordered_set<size_t>& s) {
  size_t result = 0;
  while (s.find(result) != s.end()) {
    result += 1;
  }
  return result;
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  const int64_t limit = 1000000;
  std::vector<std::tuple<int64_t, int64_t, size_t>> comp;
  comp.emplace_back(0, 0, 0);
  comp.emplace_back(1, 1, 1);
  comp.emplace_back(2, 3, 0);
  for (int64_t i = 4; i <= limit; ++i) {
    std::unordered_set<size_t> local;
    for (size_t j = comp.size() - 1; j < comp.size(); --j) {
      const auto [l, r, sg] = comp[j];
      if (r * r >= i || r * r * r >= i || r * r * r * r >= i) {
        if (l * l <= i) {
          local.insert(sg);
        }
      } else {
        break;
      }
    }
    const size_t sg = mex(local);
    if (sg == std::get<2>(comp.back())) {
      std::get<1>(comp.back()) += 1;
    } else {
      comp.emplace_back(i, i, sg);
    }
  }
  size_t n;
  std::cin >> n;
  size_t result = 0;
  for (size_t i = 0; i < n; ++i) {
    int64_t a;
    std::cin >> a;
    std::unordered_set<size_t> local;
    for (size_t j = comp.size() - 1; j < comp.size(); --j) {
      const auto [l, r, sg] = comp[j];
      if (r * r >= a || r * r * r >= a || r * r * r * r >= a) {
        if (l * l <= a) {
          local.insert(sg);
        }
      } else {
        break;
      }
    }
    result ^= mex(local);
  }
  if (result == 0) {
    std::cout << "Rublo\n";
  } else {
    std::cout << "Furlo\n";
  }
}
