func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e6 + 10;   const int SQRTN = 320;   const int LOGN = 20;   const double PI = acos(-1);   int n, val;   map<int, int> dp;   int dp2[N];   int range[N];   bool en[N];   int grundy(long long n) {     if (n < 1e6) return dp2[n];     if (dp.find(n) != dp.end()) return dp[n];     int& mex = dp[n];     int st = 0;     double e = sqrt(n);     double s = sqrt(e);     int i = ceil(s), _ = floor(e);     while (i < n && i <= _) {       i = range[i];       st = st | (1 << grundy(i));       i++;     }     while (st & (1 << mex)) mex++;     return mex;   }   int calc(int n) {     int& mex = dp2[n];     int st = 0;     double e = sqrt(n);     double s = sqrt(e);     for (int i = ceil(s), _ = floor(e); i < n && i <= _; i++) {       st = st | (1 << dp2[i]);     }     while (st & (1 << mex)) mex++;     return mex;   }   int main() {     for (int i = 0; i < 1000000; i++) {       calc(i);     }     range[999999] = 999999;     en[999999] = 1;     for (int i = 999998; i > -1; i--) {       if (dp2[i] != dp2[i + 1])         range[i] = i, en[i] = 1;       else         range[i] = range[i + 1];     }     cin >> n;     long long a;     for (int i = 0; i < n; i++) {       scanf( %lld , &a);       val = val ^ grundy(a);     }     cout << (val ?  Furlo  :  Rublo ) << endl;   }   