MOD = 998244353 N, M = map(int, input().split()) # Precompute binomial coefficients C[k][t] for 0 <= t <=k <=N C = [] for k in range(N + 1): row = [0] * (k + 1) row[0] = 1 if k >= 1: row[k] = 1 for t in range(1, k): row[t] = (C[k-1][t-1] + C[k-1][t]) % MOD C.append(row) M_mod = M % MOD ans = 0 for k in range(1, N + 1): sum_k = 0 base = (2 * M_mod + 1) % MOD for t in range(0, k + 1): current_base = (base - t) % MOD pow_val = pow(current_base, N, MOD) sign = 1 if t % 2 == 0 else MOD - 1 term = (sign * C[k][t]) % MOD term = (term * pow_val) % MOD sum_k = (sum_k + term) % MOD sum_k = (sum_k * k) % MOD ans = (ans + sum_k) % MOD print(ans)