#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;
}