#include<iostream>
#include<cstring>
using namespace std;
const long long mod=998244353;
int n,m,k,v[105],a[105];
long long f[35][120005];
int ji(long long x)
{
int res=0;
while(x)
{
x-=(-x&x);
res++;
}
return res;
}
long long dfs(int x,long long s)
{
if(x>=n+1) return ji(s)<=k;
if(f[x][s]!=-1) return f[x][s];
long long res=0;
for(int i=0;i<=m;i++)
{
a[x]=i;
res=(res+dfs(x+1,s+(1<<i))*v[i]%mod)%mod;
}
return f[x][s]=res;
}
int main()
{
freopen("2021sequence.in","r",stdin);
freopen("2021sequence.out","w",stdout);
memset(f,-1,sizeof(f));
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<=m;i++)
{
scanf("%d",&v[i]);
}
printf("%lld",dfs(1,0));
return 0;
}