MOD = 998244353 N, M = map(int, input().split()) k_max = min(N + 1, M + 1) # Precompute binomial coefficients up to k_max comb = [[0] * (k_max + 2) for _ in range(k_max + 2)] comb[0][0] = 1 for k in range(1, k_max + 1): comb[k][0] = 1 comb[k][k] = 1 for s in range(1, k): comb[k][s] = (comb[k-1][s-1] + comb[k-1][s]) % MOD total = 0 for k in range(1, k_max + 1): if (k - 1) > M: continue sum_s = 0 for s in range(0, k + 1): sign = (-1) ** s c = comb[k][s] term = (2 * M + 1 - s) % MOD term_pow = pow(term, N, MOD) contribution = sign * c * term_pow sum_s = (sum_s + contribution) % MOD sum_s = sum_s % MOD total = (total + k * sum_s) % MOD print(total % MOD)