#include<cstdio>
using namespace std;
const int N=15;
int dp[N][1<<N],v[1<<N],M[N][N];
int n,m,cnt;
const int mod=100000000;
void init()
{
for(int i=0;i<(1<<m);++i)
if((i&(i<<1))==0)v[++cnt]=i;
}
int ok(int dep,int cur){
for(int i=1;i<=m;++i)
if((cur&(1<<(i-1)))&&!M[dep][m-i+1])return 0;
return 1;
}
int main(){
scanf("%d%d",&n,&m);
init();
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)scanf("%d",&M[i][j]);
for(int i=1;i<=n;++i)
{
for(int j=1;j<=cnt;++j)
{
if(!ok(i,v[j]))continue;
if(i==1){
dp[i][j]=1;continue;
}
for(int k=1;k<=cnt;++k)
if((v[k]&v[j])==0){
dp[i][j]=(dp[i][j]+dp[i-1][k])%mod;
}
}
}
int ans=0;
for(int i=1;i<=cnt;++i)
ans=(ans+dp[n][i])%mod;
printf("%d",ans);
return 0;
}