1 #include<cstdio>
2 #include<algorithm>
3 #include<cstring>
4 #include<iostream>
5 #include<map>
6 using namespace std;
7 const int maxn = 16e6;
8
9 char s[maxn];
10 unsigned int Hash[maxn];
11 int n,m;
12 int name[1000];
13
14 unsigned int hash(char *str,int x)
15 {
16 unsigned int ans = 0;
17 for(int i = 0; i < x; ++i)
18 {
19 ans=ans*m +name[*(str+i)];
20 }
21 return ans;
22 }
23
24 int main()
25 {
26 //freopen("in","r",stdin);
27 while(~scanf("%d%d",&n,&m))
28 {
29 scanf("%s",s);
30 int len = strlen(s),k = 0;
31 for(int i = 0; i < len; ++i)
32 {
33 if(name[s[i]] == 0) name[s[i]] = k++;
34 }
35 for(int i = 0; i <= len - n; ++i)
36 {
37 unsigned int ID = hash(s+i,n);
38 Hash[ID] = 1;
39 }
40 int ans = 0;
41 for(int i = 0; i < maxn; ++i)
42 ans += Hash[i];
43 printf("%d
",ans);
44 }
45 }