MOD = 998244353 def inverse(n, d): return n * pow(d, -1, MOD) % MOD def geometric_progression(a, r, n): # a = 初項 r = 公比 n = 項数 return a*((pow(r, n, MOD)-1)%MOD)%MOD*inverse(1, r-1)%MOD N, M = map(int, input().split()) if N == 1: exit(print(0)) if M == 1: exit(print(N%2^1)) N -= 1 ans = 0 if N%2 == 1: l, r = 1, N ans += geometric_progression(M%MOD, M*M%MOD, (r-l)//2+1) ans %= MOD l, r = 2, N-1 ans -= geometric_progression(M*M%MOD, M*M%MOD, (r-l)//2+1) ans %= MOD else: l, r = 2, N ans += geometric_progression(M*M%MOD, M*M%MOD, (r-l)//2+1) ans %= MOD l, r = 1, N-1 ans -= geometric_progression(M%MOD, M*M%MOD, (r-l)//2+1) ans %= MOD print(ans)