#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=35,K=15,mod=1e9+9;
int n,m,c,a[K];
ll ans,yh[N*N][N*N],g[N][N],f[K][N][N];
int main(){
for(int i=0;i<=N*N-1;i++){
yh[i][0]=1;
for(int j=1;j<=i;j++)
yh[i][j]=(yh[i-1][j]+yh[i-1][j-1])%mod;
}
cin>>n>>m>>c;
f[0][0][0]=1;
for(int k=1;k<=c;k++){
cin>>a[k];
memset(g,0,sizeof(g));
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i*j>=a[k]){
g[i][j]=yh[i*j][a[k]];
for(int x=1;x<=i;x++){
for(int y=1;y<=j;y++){
if(x<i||y<j){
g[i][j]-=g[x][y]*yh[i][x]%mod*yh[j][y]%mod;
}
}
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int x=0;x<i;x++){
for(int y=0;y<j;y++){
if((i-x)*(j-y)>=a[k]){
f[k][i][j]+=f[k-1][x][y]*g[i-x][j-y]%mod*yh[i][x]%mod*yh[j][y]%mod;
}
}
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ans+=f[c][i][j]*yh[m][j]*yh[n][i]%mod;
}
}
cout<<ans;
return 0;
}
救救我呀