import java.util.Scanner; //basic input
import java.io.FileInputStream; // pentru FileInputStream
import java.io.PrintStream; // pentru printStream
import java.io.IOException; //try block
public class main {
public static final String IN_FILE = "lgput.in";
public static final String OUT_FILE = "lgput.out";
public static final int MOD = 1999999973;
public static long pow(final int N, final int P) {
long Xcopy = N, sol = 1;
for (int i = 0; (1 << i) <= P; ++i) {
if ( ((1 << i) & P) > 0)
sol = (sol * Xcopy) % MOD;
Xcopy = (Xcopy * Xcopy) % MOD;
}
return sol;
}
public static void Main(final String[] args) throws IOException {
try (
final Scanner scanner = new Scanner(new FileInputStream(IN_FILE));
final PrintStream writer = new PrintStream(OUT_FILE))
{
final int n = scanner.nextInt();
final int p = scanner.nextInt();
final long result = pow(n, p);
writer.println(result);
}
}
};