func_code_string: #include <bits/stdc++.h>   using namespace std;   const int Maxn = 110;   int N, A[Maxn];   map<int, int> K, dp;   int SG(int x) {     set<int> S;     if (dp.count(x)) return dp[x];     if (x == 0) return 0;     for (int i = 1; i <= 30; i++) {       int y = (x >> i) | (x & ((1 << (i - 1)) - 1));       if (y != x)         S.insert(SG(y));       else         break;     }     int p = 0;     while (!S.empty()) {       int now = *S.begin();       if (now == p)         p++;       else if (now > p)         return dp[x] = p;       S.erase(S.begin());     }     return dp[x] = p;   }   int main() {     scanf( %d , &N);     for (int i = 1; i <= N; i++) scanf( %d , &A[i]);     for (int i = 1; i <= N; i++) {       int x = A[i];       for (int j = 2; j * j <= x; j++) {         int k = 0;         while (x % j == 0) {           x /= j;           k++;         }         if (k) K[j] |= (1 << (k - 1));       }       if (x != 1) K[x] |= 1;     }     int tmp = 0;     dp[0] = 0;     for (auto i : K) tmp ^= SG(i.second);     if (tmp == 0)       printf( Arpa n );     else       printf( Mojtaba n );     return 0;   }   