#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)1e18;
const long long mod = (long long)1e9 + 7;
const double pi = acos(-1.0);
const double eps = (double)1e-9;
const int dx[] = {0, 0, 1, 0, -1};
const int dy[] = {0, 1, 0, -1, 0};
const int N = 2000500;
char s[N];
bool u[26];
int n, m, k, last[26], dp[N], sum[N];
int main() {
  scanf("%d %d %s", &n, &k, s + 1);
  m = strlen(s + 1);
  for (int i = 1; i <= m; i++) u[s[i] - 'a'] = 1;
  for (int i = m + 1; i <= n + m; i++) {
    for (int j = 0; j < k; j++) {
      if (!u[j]) {
        u[j] = 1;
        s[i] = char('a' + j);
        break;
      }
    }
  }
  dp[0] = sum[0] = 1;
  for (int i = 0; i < k; i++) last[i] = N;
  for (int i = 1; i <= n + m; i++) {
    if (s[i] < 'a' || 'z' < s[i]) {
      int mn = N;
      char c = 'a';
      for (int j = 0; j < k; j++) {
        if (last[j] < mn) {
          mn = last[j];
          c = char('a' + j);
        }
      }
      s[i] = c;
    }
    if (last[s[i] - 'a'] == N)
      dp[i] = sum[i - 1];
    else
      dp[i] = sum[i - 1] - sum[last[s[i] - 'a'] - 1];
    if (dp[i] < 0) dp[i] += mod;
    sum[i] = sum[i - 1] + dp[i];
    if (sum[i] >= mod) sum[i] -= mod;
    last[s[i] - 'a'] = i;
  }
  printf("%d", sum[n + m]);
  return 0;
}
