#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, a[N], c[N], s, num, x, sum, pos, ans;
pair<int, int> b[N];
map<int, int> m;
int dfs(int x) {
  if (x == 0) return 0;
  if (m.count(x) == 1) return m[x];
  bool mex[35];
  memset(mex, 0, sizeof(mex));
  int mask;
  for (int j = (0); j < (31); j++) {
    if ((1 << j) > x) break;
    mask = x & ((1 << j) - 1);
    mask |= x >> (j + 1);
    mex[dfs(mask)] = 1;
  }
  for (int i = (0); i < (35); i++)
    if (!mex[i]) {
      m[x] = i;
      return i;
    }
}
int main() {
  scanf("%d", &n);
  for (int i = (1); i < (n + 1); i++) scanf("%d", &a[i]);
  for (int i = (1); i < (n + 1); i++) {
    x = 2;
    while (x <= (int)sqrt(a[i])) {
      num = 0;
      while (a[i] % x == 0) {
        a[i] /= x;
        num++;
      }
      if (num > 0) {
        b[++sum] = make_pair(x, num);
      }
      x++;
    }
    if (a[i] > 1) b[++sum] = make_pair(a[i], 1);
  }
  sort(b + 1, b + sum + 1);
  n = unique(b + 1, b + sum + 1) - (b + 1);
  s = 0;
  pos = 1;
  for (int i = (1); i < (n + 1); i++) {
    if (b[i].first != b[i + 1].first || i == n) {
      s++;
      for (int j = (pos); j < (i + 1); j++) {
        c[s] += 1 << (b[j].second - 1);
      }
      pos = i + 1;
    }
  }
  for (int i = (1); i < (s + 1); i++) {
    ans ^= dfs(c[i]);
  }
  if (ans)
    printf("Mojtaba");
  else
    printf("Arpa");
}
