#include<bits/stdc++.h>
using namespace::std;
const int MOD = 1000000000 + 7;
const int N = 100000+5;
const int E = 26;
int n;
int k;
bool valid[E];
int memo[N][E];
int main(){
scanf("%d %d",&n,&k);
char c;
for(int i=0; i<k; i++){
c = getchar();
while(!isalpha(c)) c = getchar();
valid[c - 'a'] = true;
}
int prevSum = 0;
for(int i=0; i<E; i++){
if(valid[i]){
memo[1][i] = 1;
prevSum += 1;
}
}
for(int i=2; i<=n; i++){
for(int j=0; j<E; j++){
if(i&1){
if(valid[j]) memo[i][j] = prevSum - memo[i-1][j];
}
else{
memo[i][j] = prevSum - memo[i-1][j];
}
}
prevSum = 0;
for(int j=0; j<E; j++){
prevSum += memo[i][j];
if(prevSum >= MOD) prevSum -= MOD;
}
}
int ans = 0;
for(int i=0; i<E; i++){
ans += memo[n][i];
if(ans >= MOD) ans -= MOD;
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlOjpzdGQ7Cgpjb25zdCBpbnQgTU9EID0gMTAwMDAwMDAwMCArIDc7CmNvbnN0IGludCBOID0gMTAwMDAwKzU7CmNvbnN0IGludCBFID0gMjY7CgppbnQgbjsKaW50IGs7CmJvb2wgdmFsaWRbRV07CmludCBtZW1vW05dW0VdOwoKaW50IG1haW4oKXsKCXNjYW5mKCIlZCAlZCIsJm4sJmspOwoJY2hhciBjOwoJZm9yKGludCBpPTA7IGk8azsgaSsrKXsKCQljID0gZ2V0Y2hhcigpOwoJCXdoaWxlKCFpc2FscGhhKGMpKSBjID0gZ2V0Y2hhcigpOwoJCXZhbGlkW2MgLSAnYSddID0gdHJ1ZTsKCX0KCWludCBwcmV2U3VtID0gMDsKCWZvcihpbnQgaT0wOyBpPEU7IGkrKyl7CgkJaWYodmFsaWRbaV0pewoJCQltZW1vWzFdW2ldID0gMTsKCQkJcHJldlN1bSArPSAxOwoJCX0KCX0KCWZvcihpbnQgaT0yOyBpPD1uOyBpKyspewoJCWZvcihpbnQgaj0wOyBqPEU7IGorKyl7CgkJCWlmKGkmMSl7CgkJCQlpZih2YWxpZFtqXSkgbWVtb1tpXVtqXSA9IHByZXZTdW0gLSBtZW1vW2ktMV1bal07CgkJCX0KCQkJZWxzZXsKCQkJCW1lbW9baV1bal0gPSBwcmV2U3VtIC0gbWVtb1tpLTFdW2pdOwoJCQl9CgkJfQoJCXByZXZTdW0gPSAwOwoJCWZvcihpbnQgaj0wOyBqPEU7IGorKyl7CgkJCXByZXZTdW0gKz0gbWVtb1tpXVtqXTsKCQkJaWYocHJldlN1bSA+PSBNT0QpIHByZXZTdW0gLT0gTU9EOwoJCX0KCX0KCWludCBhbnMgPSAwOwoJZm9yKGludCBpPTA7IGk8RTsgaSsrKXsKCQlhbnMgKz0gbWVtb1tuXVtpXTsKCQlpZihhbnMgPj0gTU9EKSBhbnMgLT0gTU9EOwoJfQoJY291dCA8PCBhbnMgPDwgZW5kbDsKCXJldHVybiAwOwp9