#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 100, MOD = 1e9 + 7, B = 26;
int dp[N];
int ord[B], last[B], add[B];
int main() {
  ios::sync_with_stdio(false);
  cout.tie(0);
  cin.tie(0);
  int n, k, m;
  cin >> n >> k;
  string s;
  cin >> s;
  m = s.size();
  memset(ord, -1, sizeof ord);
  for (int i = 0; i < m; i++) s[i] -= 'a';
  int oN = 0;
  for (int i = m - 1; i >= 0; i--)
    if (ord[s[i]] == -1) ord[s[i]] = oN++;
  for (int i = 0; i < k; i++)
    if (ord[i] == -1) ord[i] = oN++;
  for (int i = 0; i < k; i++) add[ord[i]] = i;
  reverse(add, add + k);
  for (int i = 0; i < n; i++) s += add[i % k];
  dp[0] = 0;
  for (int i = 0; i < n + m; i++) {
    long long sum = 0;
    for (int i = 0; i < k; i++) sum += dp[last[i]], sum %= MOD;
    dp[i + 1] = (sum + 1) % MOD;
    last[s[i]] = i + 1;
  }
  long long sum = 0;
  for (int i = 0; i < k; i++) sum += dp[last[i]], sum %= MOD;
  cout << (sum + 1) % MOD << endl;
}
