#include <bits/stdc++.h>
#define mod 104659
using namespace std;
ifstream f ( "nrcuv.in" );
ofstream g ( "nrcuv.out" );
int n, i, j, v[1001][26], m;
bool a[26][26];
long long s;
int main()
{
f >> n >> m;
char x, y;
for ( int i = 1; i <= m; i++ )
{
f >> x >> y;
a[x - 'a'][y - 'a'] = a[y - 'a'][x - 'a'] = 1;
}
for ( int i = 0; i <26; i++ )
v[1][i] = 1;
for ( int i = 2; i <= n; i++ )
{
for ( int j = 0; j < 26; j++ )
{
for ( int j2 = 0; j2 < 26; j2++ )
if ( !a[j][j2])
{ v[i][j] += v[i - 1][j2]; }
v[i][j] = v[i][j] % mod;
}
}
/* for ( int i = 1; i <= n; i++ )
{
for ( int j = 0; j < 26; j++ )
{ cout << v[i][j] << " "; }
cout << '\n';
}*/
for ( int i = 0; i < 26; i++ )
{ s = ( s + v[n][i] ) % mod; }
g << s;
return 0;
}
/*
#include <fstream>
#include <iostream>
using namespace std;
#define MOD 104659
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
bool a[26][26];
int d[1001][26];
int main()
{
int n,m,i,j,j2;
long long s=0;
char x,y;
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x-'a'][y-'a']=a[y-'a'][x-'a']=1;
}
for(i=0;i<26;i++)
d[1][i]=1;
for(i=2;i<=n;i++)
{
for(j=0;j<26;j++)
{
for(j2=0;j2<26;j2++)
{
if(!a[j2][j])
d[i][j]+=d[i-1][j2];
}
d[i][j]%=MOD;
}
}
for ( int i = 1; i <= n; i++ )
{
for ( int j = 0; j < 26; j++ )
{ cout << d[i][j] << " "; }
cout << '\n';
}
for(i=0;i<26;i++)
s=(s+d[n][i])%MOD;
g<<s;
return 0;
}*/