def aa(q,e): global mod res=[[0]*2 for i in range(2)] for i in range(2): for j in range(2): for l in range(2): res[j][l]+=q[j][i]*e[i][l]%mod res[j][l]%=mod return res n,w,k=map(int,input().split()) mat=[[0]*2 for i in range(2)];mod=10**9+7 ans=[[0]*2 for i in range(2)];ans[0][0]=1 a=list(map(int,input().split())) dp=[0]*(w*2+1);dp[0]=1 for i in range(w*2): if w==i: continue for j in a: if i+j<=w*2: dp[i+j]+=dp[i] mat[0][0]=dp[w]%mod mat[1][0]=1;mat[0][1]=dp[w*2]%mod while k: if k&1: ans=aa(ans,mat) k>>=1;mat=aa(mat,mat) print(ans[0][0])