Pagini recente » Cod sursa (job #947487) | Cod sursa (job #2599883) | Cod sursa (job #2960727) | Cod sursa (job #584986) | Cod sursa (job #2339735)
#define MOD 104659
#include <cstdio>
using namespace std;
int fr[27], mat[27][27];
int d[27][1005];
int N, M;
char l1, l2;
int main()
{
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
scanf("%d %d\n", &N, &M);
for(int i=1; i<=M; i++)
{
scanf("%c %c\n", &l1, &l2);
mat[l1-'a'][l2-'a'] = 1;
mat[l2-'a'][l1-'a'] = 1;
}
for(int i=0; i<26; i++)
{
fr[i] = 26;
for(int j=0; j<26; j++)
fr[i] -= mat[i][j];
}
/// d[i][x] = cate cuvinte de lungime i care se termina in x
for(int i=1; i<=N; i++)
{
for(int j=0; j<26; j++)
d[i][j] = (1LL*(d[i-1][j]+fr[j]))%MOD;
}
long long sum = 0;
for(int j=0; j<26; j++)
sum = 1LL*(sum+d[N][j])%MOD;
printf("%lld", sum/2);
return 0;
}