#include #include #include using namespace std; int d[5009], c[5009]; bool r[5009][5009]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int a; cin >> a; r[(1 << j)][i] = a; } r[0][i] = 1; } d[0] = 1; for (int i = 1; i < (1 << m); i++) { int p0 = i & (-i), p1 = i - p0; for (int j = 0; j < n; j++) { r[i][j] = r[p0][j] & r[p1][j]; c[i] += r[i][j]; } for (int j = 0; j < m; j++) if ((i & (1 << j)) && c[i] >= (c[i - (1 << j)] + 1) / 2) d[i] += d[i - (1 << j)]; } cout << d[(1 << m) - 1] << '\n'; return 0; }