func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, ans = 1, bell[1005], c[1005][1005];   char s[55][1005];   map<long long, int> w;   long long get(int x) {     long long res = 0;     for (int i = 1; i <= n; i++) res = (res << 1) + s[i][x] - 48;     return res;   }   int main() {     scanf( %d%d , &m, &n);     for (int i = 1; i <= n; i++)       for (int j = 1; j <= m; j++) scanf(  %c , &s[i][j]);     for (int i = 1; i <= m; i++) w[get(i)]++;     c[0][0] = 1;     bell[0] = 1;     for (int i = 1; i <= m; i++)       for (int j = 0; j <= i; j++) {         c[i][j] = (c[i - 1][j - 1] + (long long)j * c[i - 1][j]) % 1000000007;         bell[i] = (bell[i] + c[i][j]) % 1000000007;       }     for (int i = 1; i <= m; i++) {       long long num = get(i);       ans = (long long)ans * bell[w[num]] % 1000000007;       w[num] = 0;     }     printf( %d n , ans);     return 0;   }   