MOD = 998244353i64 n, m = read_line.split.map(&.to_i) all = (pow(2i64, n) + MOD - 1) half = (pow(2i64, n - 1) + MOD - 1) v0 = 1i64 v1 = 1i64 (m - 1).times do |i| den = inv(i + 1) v0 *= all v0 %= MOD v0 *= den v0 %= MOD v1 *= half v1 %= MOD v1 *= den v1 %= MOD all -= 1 half -= 1 end v0 *= all v0 %= MOD v0 *= inv(m) v0 %= MOD puts (v0 - v1 * (pow(2i64, n) - 1) % MOD + MOD) % MOD def inv(v : Int64) pow(v, MOD - 2) end def pow(v : Int64, p) ret = 1i64 while p > 0 if (p & 1i64) != 0 ret *= v ret %= MOD end v *= v v %= MOD p >>= 1 end ret end