#include <fstream>
using namespace std;
ifstream cin ("nrcuv.in");
ofstream cout ("nrcuv.out");
bool used[30][30];
const int MOD = 104659;
int dp[2][30];
int main()
{
int n , m;
cin>>n>>m;
for (int i=1; i<=m; i++){
char a , b;
cin>>a>>b;
int A = a - 'a';
int B = b - 'a';
//cout<<A<<" "<<B<<'\n';
used[A][B] = true;
used[B][A] = true;
}
//cout<<'a' - 'a' <<" "<<'z' - 'a'<<'\n';
for (int i=0; i<=25; i++){
dp[0][i] = 1;
}
for (int i=1; i<n; i++){
for (int j=0; j<=25; j++){
for (int k=0; k<=25; k++){
if (!used[j][k]){
dp[1][k] += dp[0][j];
}
}
}
for (int j=0; j<=25; j++){
dp[0][j] = dp[1][j];
dp[0][j] %= MOD;
dp[1][j] = 0;
}
}
int sum = 0;
for (int i=0; i<=25; i++){
sum += dp[0][i];
}
sum %= MOD;
cout<<sum;
return 0;
}