#include <bits/stdc++.h>
using namespace std;
const int N = 13, M = (1 << N), MOD = 1e8;
long long f[N][M];
bool st[M];
vector<int> ok[M];
int n, m;
int g[N];
bool check(int x)
{
bool f = 0;
for (int i = 0; i < n; i ++)
{
if ((x >> i) & 1)
{
if (f == 1)
{
return false;
}
f = 1;
}
else f = 0;
}
return true;
}
int count(int x)
{
int ans = x & 1;
while (x)
{
ans += x >> 1 & 1;
x = x >> 1;
}
return ans;
}
int main()
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i ++)
{
for (int j = 1; j <= m; j ++)
{
int x;
scanf("%d", &x);
g[i] = g[i] << 1 | !x;
}
}
for (int i = 0; i < (1 << m); i ++)
{
st[i] = check(i);
}
for (int i = 0; i < (1 << m); i ++)
{
for (int j = 0; j < (1 << m); j ++)
{
if (st[i] && st[j] && ((i & j) == 0))
{
ok[i].push_back(j);
}
}
}
f[0][0] = 1;
for (int i = 1; i <= n + 1; i ++)
{
for (int j = 0; j < (1 << m); j ++)
{
if (st[j] && !(g[i] & j))
{
for (auto k : ok[j])
{
if (!(g[i] & k))
{
f[i][j] = (f[i][j] + f[i - 1][k]) % MOD;
}
}
}
}
}
cout << f[n + 1][0] << endl;
return 0;
}