//No.16 累乗の加算 import java.util.*; import java.io.*; import static java.util.Arrays.*; import static java.lang.Math.*; public class No16 { static final Scanner sc = new Scanner(System.in); static final PrintWriter out = new PrintWriter(System.out,false); static void solve() { int x = sc.nextInt(); int n = sc.nextInt(); long ans = 0; for (int i=0; i 0) { if ((n&1) == 1) ret = ret*x %m; x = x*x %m; n >>= 1; } return ret; } public static void main(String[] args) { long start = System.currentTimeMillis(); solve(); out.flush(); long end = System.currentTimeMillis(); //trace(end-start + "ms"); sc.close(); } static void trace(Object... o) { System.out.println(deepToString(o));} }