#include <bits/stdc++.h>
#define int long long
#define For(i, a, b) for (int i = (a); i <= (b); i ++)
#define foR(i, a, b) for (int i = (a); i >= (b); i --)
using namespace std;
int n, m, k;
int f[110][40][40][40];
int v[110], p[110][40];
int c[35][35];
const int mod = 998244353;
int func (int x) {
bool f1 = x & 1, f2 = x & 2, f3 = x & 4, f4 = x & 8, f5 = x & 16;
return f1 + f2 + f3 + f4 + f5;
}
void modify (int &x, int y) {x = (x + y) % mod;}
void solve () {
For (i, 0, 30) c[i][0] = 1;
For (i, 1, 30) For (j, 1, i) c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
cin >> n >> m >> k;
For (i, 1, m + 1) cin >> v[i];
For (i, 1, m + 1) {
p[i][0] = 1;
For (j, 1, 30) p[i][j] = p[i][j - 1] * v[i] % mod;
}
f[0][0][0][0] = 1;
For (i, 0, m) {
For (j, 0, n) {
For (k, 0, 38) {
For (l, 0, n - 1) {
if (f[i][j][k][l] == 0) continue;
For (u, 0, n - j) {
modify (f[i + 1][j + u][k / 2 + u][l - func (k) + (k & 1) + func (k / 2 + u)], c[n - j][u] * f[i][j][k][l] % mod * p[i + 1][u] % mod);
}
}
}
}
}
int ans = 0;
For (l, 0, 31) For (p, 0, k) ans = (ans + f[m + 1][n][l][p]) % mod;
cout << ans;
}
signed main () {
int _ = 1;
while (_ --) {
solve ();
cout << '\n';
}
return 0;
}