/*
Exponentiere rapida. Am N si P, calculez N^P modulo p, p prim.
*/
#define p 1999999973
#include <stdio.h>
long long exp_rapida(long long N, long long P) {
if (P == 0) {
return 1;
} else if (P == 1) {
return N % p;
} else if (P % 2 == 1) {
return ((N % p) * exp_rapida(((N % p) * (N % p)) % p, (P - 1) / 2)) % p;
} else {
return exp_rapida(((N % p) * (N % p)) % p, P / 2);
}
}
int main() {
long long N, P;
FILE *in, *out;
in = fopen("lgput.in", "r");
out = fopen("lgput.out", "w");
fscanf(in, "%llu", &N);
fscanf(in, "%llu", &P);
fprintf(out, "%llu\n", exp_rapida(N, P));
fclose(in);
fclose(out);
return 0;
}