#include <iostream>
using namespace std;
//如n=30,对应二进制为111110,权重为16+8+4+2+1+0
long long fastPow(long long x,int n,int mod){
long long res=1;
x=x%mod;
while(n>0){
//当前权位为1时才乘,为0不乘,比如n=24,11000,只乘16和8
if(n%2==1)res=res*x%mod;//奇数==最后位是1
x=x*x%mod;//第一次x变成x²,用...