#include <bits/stdc++.h>
using namespace std;
const int MAXK = 26;
const long long MOD = 1e9 + 7;
int last[MAXK], ord[MAXK];
long long sum, dp[MAXK];
void add(int c) {
  sum = (sum - dp[c] + MOD) % MOD;
  dp[c] = (dp[c] + sum + 1) % MOD;
  sum = (sum + dp[c]) % MOD;
}
int main() {
  ios_base::sync_with_stdio(false);
  int N, K;
  string S;
  cin >> N >> K >> S;
  memset((last), (-1), sizeof(last));
  sum = 0;
  for (int _n((int)S.size()), i(0); i < _n; i++) {
    int c = S[i] - 'a';
    last[c] = i;
    add(c);
  }
  iota(ord, ord + K, 0);
  sort(ord, ord + K, [](int a, int b) { return last[a] < last[b]; });
  for (int _n(N), i(0); i < _n; i++) {
    int c = ord[i % K];
    add(c);
  }
  cout << (sum + 1) % MOD << endl;
  return 0;
}
