#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
long long n,m,k,v[105],a[105],f[35][120005];
long long get(long long x){
int res=0;
while(x){
x-=(-x&x);
res++;
}
return res;
}
long long dfs(int x,long long fa){
if(x>=n+1)
return get(fa)<=k;
if(f[x][fa]!=-1)
return f[x][fa];
long long res=0;
for(int i=0;i<=m;i++){
a[x]=i;
res=(res+dfs(x+1,fa+(1<<i))*v[i]%mod)%mod;
}
return f[x][fa]=res;
}
int main(){
freopen("2021sequence.in","r",stdin);
freopen("2021sequence.out","w",stdout);
memset(f,-1,sizeof(f));
cin>>n>>m>>k;
for(int i=0;i<=m;i++)
cin>>v[i];
cout<<dfs(1,0);
return 0;
}