#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:16777216")
const int inf = 0x3f3f3f3f;
const long double pi = acos(-1.0);
const string debug_line = "yolo";
const double PI = 4 * atan(1);
char s[1000001];
int last1[26];
long long dp[26];
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  scanf("%s", s);
  int m = strlen(s);
  for (int(i) = (0); (i) < (m); ++(i)) {
    long long sum1 = 0;
    for (int(j) = (0); (j) < (k); ++(j)) {
      sum1 = (sum1 + dp[j]) % 1000000007;
    }
    dp[s[i] - 'a'] = (1 + sum1) % 1000000007;
    last1[s[i] - 'a'] = i + 1;
  }
  for (int(i) = (m + 1); (i) < (m + 1 + n); ++(i)) {
    int next = min_element(last1, last1 + k) - last1;
    long long sum1 = 0;
    for (int(j) = (0); (j) < (k); ++(j)) {
      sum1 = (sum1 + dp[j]) % 1000000007;
    }
    dp[next] = (1 + sum1) % 1000000007;
    last1[next] = i;
  }
  long long answer1 = 0;
  for (int(j) = (0); (j) < (k); ++(j)) {
    answer1 = (answer1 + dp[j]) % 1000000007;
  }
  printf("%lld\n", (1 + answer1) % 1000000007);
  return 0;
}
