func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, x;   map<long long, long long> mp;   map<long long, long long> nums;   long long grund(long long x) {     if (x <= 1) return 0;     if (mp[x]) return mp[x];     for (long long i = 31; i >= 0; i--) {       if ((x & (1 << i))) {         set<long long> second;         second.clear();         for (long long j = i; j >= 1; j--) {           long long y = x % (1 << j);           for (long long k = j; k <= i; k++) {             if (x & (1 << k)) y |= (1 << (k - j));           }           second.insert(grund(y));         }         for (long long j = 0; j <= 31; j++)           if (second.find(j) == second.end()) return mp[x] = j;       }     }   }   signed main() {     ios_base::sync_with_stdio(0);     cin >> n;     for (long long i = 1; i <= n; i++) {       cin >> x;       long long y = x;       for (long long j = 2; j <= sqrt(x); j++) {         if (!(y % j)) {           long long cnt = 0;           while (!(y % j)) {             cnt++;             y /= j;           }           nums[j] |= (1 << cnt);         }       }       if (y > 1) nums[y] |= 2;     }     if (!nums.size()) {       cout <<  Arpa ;       return 0;     }     long long g = 0;     for (map<long long, long long>::iterator it = nums.begin(); it != nums.end();          it++) {       g ^= grund(it->second);     }     if (!g)       cout <<  Arpa ;     else       cout <<  Mojtaba ;   }   