This
#include<bits/stdc++.h>
using namespace std;
long long dp[14][1<<14];
int n,m;
int g[15],c,s[1<<14];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
int x;cin>>x;
g[i]=(g[i]<<1)+x;
}
}
for(int i=0;i<(1<<m);i++){
if(!(i&i>>1)){
s[c++]=i;
}
}
dp[0][0]=1;
for(int i=1;i<=n+1;i++){
for(int j=0;j<c;j++){
for(int k=0;k<c;k++){
if((s[j]&g[i])==s[j] && !(s[j]&s[k])){
dp[i][j]=(dp[i][j]+dp[i-1][k])%100000000;
}
printf("dp[%d][%d]=%d,",i,j,dp[i][j]);
}
}
cout<<"\n";
}
cout<<dp[n+1][0];
return 0;
}