#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll MOD = 998244353; int main() { int N, Q; cin >> N >> Q; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } vector B(Q); for (int i = 0; i < Q; ++i) { cin >> B[i]; } ll dp[N + 1]; memset(dp, 0, sizeof(dp)); dp[0] = 1; for (int i = 0; i < N; ++i) { ll a = A[i]; ll temp[N + 1]; memset(temp, 0, sizeof(temp)); for (int v = 0; v < N; ++v) { temp[v] += (a - 1) * dp[v]; temp[v + 1] += dp[v]; temp[v] %= MOD; temp[v + 1] %= MOD; } memcpy(dp, temp, sizeof(temp)); } for (int b : B) { cout << dp[b] << endl; } return 0; }