#include<bits/stdc++.h>
using namespace std;
#define int long long
const int bit=2e2+5,N=1e2+5,mod=998244353;
int n,m,k,v[N],dp[bit+5][N][N][N],C[bit+5][bit+5];
int ksm(int x,int n){
int ret=1;
while(n){
if(n%2){
ret=ret*x%mod;
}
x=x*x%mod,n/=2;
}
return ret;
}
signed main(){
cin>>n>>m>>k;
for(int i=0;i<=m;i++){
cin>>v[i];
}
for(int i=0;i<=bit;i++){
C[i][0]=1;
for(int j=1;j<=i;j++){
C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;
}
}
dp[0][0][0][0]=1;
for(int i=0;i<=bit;i++){
for(int j=0;j<=n;j++){
for(int k=0;k<=m;k++){
for(int l=0;l<=m;l++){
if(i<=m){
for(int num=0;num<=n-j;num++){
dp[i+1][j+num][(num+k)/2][l+(num+k)%2]=(dp[i+1][j+num][(num+k)/2][l+(num+k)%2]+dp[i][j][k][l]*C[j+num][num]*ksm(v[i],num))%mod;
}
}
else{
int num=0;
dp[i+1][j+num][(num+k)/2][l+(num+k)%2]=(dp[i+1][j+num][(num+k)/2][l+(num+k)%2]+dp[i][j][k][l])%mod;
}
}
}
}
}
int ans=0;
for(int i=0;i<=k;i++){
ans=(ans+dp[bit][n][0][i]);
}
cout<<ans;
}