local mod = 998244353 local mfl = math.floor local function bmul(x, y) local x0, y0 = x % 31596, y % 31596 local x1, y1 = mfl(x / 31596), mfl(y / 31596) return (x1 * y1 * 62863 + (x1 * y0 + x0 * y1) * 31596 + x0 * y0) % mod end local function badd(x, y) return (x + y) % mod end local n, q = io.read("*n", "*n") local dp = {1} for i = 2, n + 1 do dp[i] = 0 end for i = 1, n do local a = io.read("*n") a = a - 1 for j = i, 1, -1 do dp[j + 1] = badd(dp[j + 1], dp[j]) dp[j] = bmul(dp[j], a) end end for iq = 1, q do local b = io.read("*n") print(dp[b + 1]) end