func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = 0x3f3f3f3f;   const long long LINF = 0x3f3f3f3f3f3f3f3fll;   map<int, int> memo;   int solve(int mask) {     if (!mask) return 0;     if (memo.find(mask) != memo.end()) return memo[mask];     map<int, bool> canreach;     for (int i = 0; i < 32; i++) {       int aux = ((1 << i) - 1) & mask;       int ns = aux | ((mask - aux) >> (i + 1));       if (ns == mask) continue;       canreach[solve(ns)] = true;     }     int mex = 0;     for (int i = 0; i < 100; i++)       if (!canreach[i]) {         mex = i;         break;       }     return memo[mask] = mex;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     cin >> n;     map<int, int> mps;     for (int j = 0; j < n; j++) {       int val, aux;       cin >> val;       aux = val;       for (int i = 2; i * i <= val; i++) {         int cnt = 0;         while (aux % i == 0) {           aux /= i;           cnt++;         }         if (cnt) mps[i] |= (1 << (cnt - 1));       }       if (aux != 1) mps[aux] |= 1;     }     int grundy = 0;     for (auto u : mps) grundy ^= solve(u.second);     cout << (grundy ?  Mojtaba  :  Arpa ) <<   n ;     return 0;   }   