LL pow_mod(LL a, LL p, LL m) { if(p == 0) return 1; LL ans = pow_mod(a, p/2, m); ans = ans * ans % m; if(p % 2) ans = ans * a % m; return ans; }