#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long long ridicare(long long baza, long long putere, long long mod)
{
long long rezultat = 1;
baza %= mod;
while(putere > 0) {
if(putere % 2 == 1)
rezultat = (rezultat * baza) % mod;
baza = (baza * baza) % mod;
putere /= 2;
}
return rezultat;
}
int main()
{
FILE *fin, *fout;
fin = fopen("lgput.in","r");
fout = fopen("lgput.out","w");
long long x, y;
long long z = 1999999973;
fscanf(fin,"%lld",&x);
fscanf(fin,"%lld",&y);
fprintf(fout,"%lld",ridicare(x,y,z));
fclose(fin);
fclose(fout);
}