Pagini recente » Cod sursa (job #134271) | Cod sursa (job #1897933) | Cod sursa (job #613792) | Istoria paginii preoni-2008/runda-4/solutii | Cod sursa (job #1156788)
/*
Keep It Simple!
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include<cstdio>
#define MaxN 1005
#define MOD 104659
int N, M, Dp[MaxN][27], Conf[27][27];
int main()
{
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
scanf("%d%d", &N, &M);
char x, y;
scanf("%c", &x);
for (int i = 1; i <= M; i++)
{
scanf("%c%c%c", &x, &y, &y);
Conf[x - 'a'][y - 'a'] = 1;
Conf[y - 'a'][x - 'a'] = 1;
scanf("%c", &x);
}
for (int i = 0; i < 26; i++)
Dp[1][i] = 1;
for (int i = 2; i <= N; i++)
for (int j = 0; j < 26; j++)
{
for (int k = 0; k < 26; k++)
if (!Conf[k][j] && !Conf[j][k])
Dp[i][j] = (Dp[i][j] + Dp[i - 1][k]) % MOD;
}
int sol = 0;
for (int i = 0; i < 26; i++)
sol = (sol + Dp[N][i]) % MOD;
printf("%d", sol);
}