#include <iostream>
#include <fstream>
using namespace std;
int main()
{const int MOD=104659;
FILE *F,*G;
F=fopen("nrcuv.in","r");
int N,M,x,y,k;
int A[27]={0},B[27]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,};
char a,b;
bool boo[27][27]={0};
fscanf(F,"%d %d",&N,&M);
for (x=1;x<=M;x++)
{
fscanf(F,"%c %c %c",&a,&a,&b);
boo[a-'a'][b-'a']=boo[b-'a'][a-'a']=1;
}
fclose(F);
int maxi=0;
for (x=0;x<N-1;x++)
{for (y=1;y<=26;y++)
for (k=1;k<=26;k++)
{
if (!boo[y-1][k-1])
A[y]=(A[y]+B[k])%MOD;
}
for (k=1;k<=26;k++) {B[k]=A[k]; A[k]=0;}
}
for (x=1;x<=26;x++) maxi=(maxi+B[x])%MOD;
G=fopen("nrcuv.out","w");
if (N==1) fprintf(G,"%d",26); else fprintf(G,"%d",maxi);
fclose(G);
}