#include <bits/stdc++.h>
using namespace std;
long long n, k;
string s;
long long dp[2000010];
long long f[26];
long long g[26];
long long p = 1e9 + 7;
int main() {
  cin >> n >> k;
  cin >> s;
  dp[0] = 1;
  for (int i = 1; i <= s.size(); i++) {
    long long pre = f[s[i - 1] - 'a'] % p;
    dp[i] = (2 * dp[i - 1] % p - pre + p) % p;
    f[s[i - 1] - 'a'] = dp[i - 1];
    g[s[i - 1] - 'a'] = i;
  }
  for (int i = 1; i <= n; i++) {
    long long cmin = 1e9 + 1;
    long long po;
    for (int j = 0; j < k; j++) {
      if (g[j] < cmin) {
        cmin = g[j];
        po = j;
      }
    }
    g[po] = s.size() + i;
    long long pre = f[po];
    dp[s.size() + i] = (2 * dp[s.size() + i - 1] % p - pre + p) % p;
    f[po] = dp[s.size() + i - 1];
  }
  cout << dp[n + s.size()] << "\n";
}
