#include <bits/stdc++.h>
using namespace std;
int put(int nr, int p);
int main() {
  long long p, k, q;
  cin >> p >> k;
  q = k;
  if (k == 0) {
    cout << put(p, p - 1);
    return 0;
  }
  if (k == 1) {
    cout << put(p, p);
    return 0;
  }
  int n = 1;
  while (q != 1) {
    q *= k;
    q %= p;
    n++;
  }
  cout << put(p, (p - 1) / n);
  return 0;
}
int put(int nr, int p) {
  if (p == 0) return 1;
  long long a = put(nr, p / 2);
  a *= a;
  a %= 1ll * 1000000007;
  if (p & 1) {
    a *= nr;
    a %= 1ll * 1000000007;
  }
  return a;
}
