#include <iostream>
#include <cmath>
#include <map>
#define int long long
#define MAXN 100000
#define Mod 19260817
#define QWQ cout << "QWQ" << endl;
using namespace std;
map <int, int> M;
int gcd(int n, int m) {
if(!m) return n;
else return gcd(m, n % m);
}
int mul(int n, int m, int M) {
int ans = 0;
while(m) {
if(m & 1) ans = (ans + n) % M;
n = (n + n) % M, m >>= 1;
}
return ans;
}
int qpow(int n, int m, int M) {
int ans = 1;
while(m) {
if(m & 1) ans = mul(ans, n, M);
n = mul(n, n, M), m >>= 1;
}
return ans;
}
void BSGS(int a, int b, int m) {
M.clear();
int t = ceil(sqrt(m) + 1), qwq = b % m, qaq = 1, quq = 1;
M[qwq] = 0;
for(int p = 1; p <= t; p++) {
qwq = qwq * a % m;
M[qwq] = p;
}
qaq = qpow(a, t, m);
for(int p = 1; p <= t; p++) {
quq = quq * qaq % m;
if(M[quq] && ((p * t - M[quq]) % m + m) % m) {
cout << ((p * t - M[quq]) % m + m) % m << endl;
return ;
}
}
}
signed main() {
int m, k; cin >> m >> k;
if(gcd(m, k) != 1)cout << "Let's go Blue Jays!" << endl;
else BSGS(k, 1, m);
}
第一个点 WA 了,有人帮忙看看嘛/kel/kel/kel