var
a,n:int64;
function f(a,n:int64):int64;
var
t:int64;
begin
if a=0 then exit(0);
if a=1 then exit(1);
if a=-1 then if n mod 2=0 then exit(1) else exit(-1);
if n=1 then exit(a);
if n=0 then exit(1);
t:=f(a,n div 2);
f:=t*t;
if n mod 2=1 then f:=f*a;
end;
begin
while not eof do begin
readln(a,n);
writeln(f(a,n)mod 10007);
end;
end.