func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2e6 + 5;   const int mod = 1e9 + 7;   int n, k, m, dp[N], lst[300];   char s[N];   inline int add(int x, int y) { return x + y >= mod ? x + y - mod : x + y; }   inline int mul(int x, int y) { return (long long int)x * y % mod; }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     cin >> n >> k >> (s + 1);     m = strlen(s + 1);     dp[0] = 1;     for (int i = 1; i <= m; i++) {       dp[i] = mul(dp[i - 1], 2);       if (lst[s[i]] != 0) dp[i] = add(dp[i], mod - dp[lst[s[i]] - 1]);       lst[s[i]] = i;     }     for (int i = m + 1; i <= n + m; i++) {       dp[i] = mul(dp[i - 1], 2);       int mn = 0;       for (int j = 0; j < k; j++) {         if (lst[mn +  a ] > lst[j +  a ]) mn = j;       }       if (lst[mn +  a ] != 0) dp[i] = add(dp[i], mod - dp[lst[mn +  a ] - 1]);       lst[mn +  a ] = i;     }     cout << dp[n + m] << endl;   }   