1 #include<cstdio>
2 #include<cstring>
3 #include<algorithm>
4 const int mod=1e8;
5 typedef long long LL;
6 const int N=13;
7 int n,m,mx,an=0;
8 int map[N],f[N][1<<13];
9 int read(){
10 int ans=0,f=1;char c=getchar();
11 while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-1;c=getchar();}
12 while(c>=‘0‘&&c<=‘9‘){ans=ans*10+c-48;c=getchar();}
13 return ans*f;
14 }
15 int main(){
16 m=read();n=read();
17 for(int i=1;i<=m;map[i]=mx,i++)
18 for(int i=1,a;i<=n;i++)
19 a=read(),mx<<=1,mx+=a;
20 mx=(1<<n)-1;
21 for(int i=0;i<=mx;i++)
22 if(!(i&(i>>1))&&(i|map[1])==map[1])f[1][i]=1;
23 for(int i=2;i<=m;i++)
24 for(int j=0;j<=mx;j++)if(f[i-1][j])
25 for(int k=0;k<=mx;k++)
26 if(!(j&k)&&!(k&(k>>1))&&(k|map[i])==map[i])
27 f[i][k]=(f[i][k]+f[i-1][j])%mod;
28 for(int i=0;i<=mx;i++)an=(an+f[m][i])%mod;
29 printf("%d",an);
30 return 0;
31 }