#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
long long powm(long long a, long long b, long long m);
long long ct[26];
long long lol[26];
void solve() {
  long long m, k;
  cin >> m >> k;
  for (long long i = 0; i < 26; i++) ct[i] = -i - 1;
  string s;
  cin >> s;
  long long sum;
  for (long long i = 0; i < s.length(); i++) {
    sum = 0;
    for (long long j = 0; j < k; j++) sum += lol[j];
    ct[s[i] - 'a'] = i;
    lol[s[i] - 'a'] = (sum + 1) % mod;
  }
  long long mini = 10000000, minind = 0;
  for (long long i = s.length(); i < s.length() + m; i++) {
    sum = 0;
    mini = 10000000;
    for (long long j = 0; j < k; j++) {
      sum += lol[j];
      if (mini > ct[j]) {
        mini = ct[j];
        minind = j;
      }
    }
    lol[minind] = (sum + 1) % mod;
    ct[minind] = i;
  }
  sum = 0;
  for (long long i = 0; i < k; i++) sum += lol[i];
  cout << (sum + 1) % mod << '\n';
}
signed main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  srand(chrono::steady_clock::now().time_since_epoch().count());
  solve();
  return 0;
}
long long powm(long long a, long long b, long long m) {
  long long te = 1;
  while (b) {
    if (b & 1) te = (te * a) % m;
    a = (a * a) % m;
    b >>= 1;
  }
  return te;
}
