#include <bits/stdc++.h>
using namespace std;
long long int fact[40] = {0};
void factorial() {
  fact[0] = 1;
  fact[1] = 1;
  long long int i = 2;
  while (i < 20) {
    fact[i] = (i * fact[i - 1]);
    i++;
  }
}
long long int ncr(long long int n, long long int r) {
  long long int k = max(r, n - r);
  long long int pro = 1;
  long long int i;
  for (i = k + 1; i < n + 1; i++) {
    pro = pro * i;
    pro /= (i - k);
  }
  return pro;
}
void solve() {
  long long int i, j, k, m, n;
  long long int l;
  cin >> n >> m;
  string s[n];
  for (i = 0; i < n; i++) cin >> s[i];
  long long int ans = 1;
  for (i = 0; i < m; i++) {
    set<int> diff;
    for (j = 0; j < n; j++) {
      diff.insert((int)(s[j][i]) - 65);
    }
    ans = (ans % 1000000007 * diff.size() % 1000000007) % 1000000007;
  }
  cout << ans << endl;
  return;
}
int main() {
  long long int t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
