#include <iostream>
#include <cmath>
#include <set>
using namespace std;
int p = 0, prime[100001];
void build_seive(){
int n = sqrt(100001), a[100001] = {0};
for(int j = 3; j <= n; j+=2)
if(a[j] == 0)
for(int k = j*j; j < 100001; j += 2*j)
a[k] = 1;
prime[p++] = 2;
for(int j = 3; j < 100001; j += 2)
if(a[j] == 0) prime[p++] = j;
return;
}
int find_ans(int mask){
int counts = 0, maxi = 0;
for(int j = 1; j <= 30; j++)
if((1 << j) & mask){
counts ++;
maxi = j;
}
//cout << maxi << " " << counts << endl;
if(counts == 1 || counts == 0){
if(mask % 2 != 0) return (mask - 1);
return mask;
}
set<int> s;
for(int j = 1; j <= maxi; j++)
s.insert(find_ans((mask >> j) | (mask & ((1 << j) - 1))));
int mex = 0;
while(s.find(mex) != s.end())
mex++;
return mex;
}
int n, a[101];
void solve(){
int ans = 0;
for(int j = 0; j < p; j++){
int mask = 0;
for(int k = 0; k < n; k++){
int counts = 0;
while(a[k] % prime[j] == 0){
counts++;
a[k] /= prime[j];
}
mask = mask | (1 << counts);
}
if(mask > 1) ans ^= find_ans(mask);
// if(mask > 1) cout << mask << endl;
}
for(int j = 0; j < n; j++)
if(a[j] != 1){
int mask = 0, curr = a[j];
for(int k = 0; k < n; k++){
int counts = 0;
while(a[k] % curr == 0){
counts++;
a[k] /= curr;
}
mask = mask | (1 << counts);
}
if(mask > 1) ans ^= find_ans(mask);
}
if(!ans) cout << "Arpa\n";
else cout << "Mojtaba\n";
return;
}
int main(){
build_seive();
cout << find_ans((1 << 30) - 1);
/*ios_base :: sync_with_stdio(false);
cin >> n;
for(int j = 0; j < n; j++)
cin >> a[j];
solve();
return 0;*/
}