ROOT1 = 3 MOD1 = 998244353 roots1 = [pow(ROOT1,(MOD1-1)>>i,MOD1) for i in range(30)] # 1 の 2^i 乗根 iroots1 = [pow(x,MOD1-2,MOD1) for x in roots1] # 1 の 2^i 乗根の逆元 ROOT2 = 5 MOD2 = 924844033 roots2 = [pow(ROOT2,(MOD2-1)>>i,MOD2) for i in range(30)] # 1 の 2^i 乗根 iroots2 = [pow(x,MOD2-2,MOD2) for x in roots2] # 1 の 2^i 乗根の逆元 def untt(a,n, MOD, roots): for i in range(n): m = 1<<(n-i-1) for s in range(1<