func_code_string: #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;   }   