#include #include using namespace std; const int MOD = 998244353; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, M, k; cin >> N >> M >> k; vector C(k); for (int i = 0; i < k; ++i) { cin >> C[i]; } int twoN = 2 * N; vector f(twoN); f[0] = 1; for (int x = 1; x < twoN; ++x) { f[x] = 0; for (int d = 1; d <= 6; ++d) { if (x - d >= 0) { f[x] += f[x - d]; } } f[x] %= MOD; } vector A(twoN, 0); for (int t = 0; t < twoN; ++t) { for (int d = 0; d < 6; ++d) { int x = twoN - 6 + d; if (x >= t) { int s = x - t; A[t] = (A[t] + (long long)(d + 1) * f[s]) % MOD; } } } long long fN = f[N]; for (int i = 0; i < k; ++i) { int c = C[i]; long long term1 = (f[c] * A[c]) % MOD; long long ki = (f[c + N] - (f[c] * fN) % MOD + MOD) % MOD; long long term2 = (ki * A[c + N]) % MOD; long long ans = (term1 + term2) % MOD; cout << ans << '\n'; } return 0; }