#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define MODN 129402307 ll expoModN(ll a, ll b) { if (b == 1) return a; if (b == 0) return 1; ll t = (expoModN(a, b/2)%MODN); return (((t*t)%MODN)*(expoModN(a, b%2)%MODN))%MODN; } ll solve(char *n, char *m) { ll s = 0; for (int i = 0; n[i] != '\0'; i++) { s = (s*10+n[i]-'0')%MODN; } if (s == 0) { if (strcmp(m, "0") == 0) { return 1; }else { return 0; } }else { ll t = 0; for (int i = 0; m[i] != '\0'; i++) { t = (t*10+m[i]-'0')%(MODN-1); } return expoModN(s, t); } } int main() { char n[100001], m[100001]; scanf("%s %s", n, m); printf("%lld\n", solve(n, m)); }