#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5+5;
const int mod = 100000000;
int n, m, cc[20][20], st[1<<13], mp[13], dp[13][1<<13];
int Case = 1;
void solve() {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
scanf("%d", &cc[i][j]);
mp[i] = (mp[i]<<1) + cc[i][j];
}
}
dp[0][0] = 1;
int mx = 1<<m;
for(int i = 0; i < mx; i++)
st[i] = ((i&(i<<1)) == 0);
for(int i = 1; i <= n; i++)
for(int j = 0; j < mx; j++)
if(((j&mp[i]) == j) && st[j])
for(int k = 0; k < mx; k++)
if((k&j) == 0)
dp[i][j] = (dp[i][j] + dp[i-1][k])%mod;
int res = 0;
for(int i = 0; i < mx; i++)
res = (res + dp[n][i])%mod;
printf("%d\n", res);
return;
}
int main() {
while(Case--) {
solve();
}
return 0;
}