#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
string str[105];
vector<char> vec;
bool check(char a) {
  for (int i = 0; i < vec.size(); i++) {
    if (vec[i] == a) return false;
  }
  return true;
}
int main() {
  int n, m;
  while (scanf("%d%d", &n, &m) != EOF) {
    long long ans = 1;
    for (int i = 1; i <= n; i++) {
      cin >> str[i];
    }
    for (int i = 0; i < m; i++) {
      vec.clear();
      for (int j = 1; j <= n; j++) {
        bool flag = false;
        if (check(str[j][i])) vec.push_back(str[j][i]);
      }
      ans = ans * vec.size() % mod;
    }
    printf("%lld\n", ans % mod);
  }
  return 0;
}
