Pagini recente » Cod sursa (job #2878096) | Cod sursa (job #2396973) | Cod sursa (job #2678995) | Cod sursa (job #925426) | Cod sursa (job #998385)
Cod sursa(job #998385)
#include <cstdio>
using namespace std;
const int MOD = 104659, NMAX = 1005;
int Out[30][30], DP[NMAX][30], N, M;
char A, B;
int main()
{
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
scanf("%i %i\n", &N, &M);
for(int i = 1; i <= M; ++ i)
{
scanf("%c %c\n", &A, &B);
Out[A - 'a'][B - 'a'] = Out[B - 'a'][A - 'a'] = 1;
}
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(!Out[k][j])
DP[i][j] = (DP[i][j] + DP[i - 1][k]) % MOD;
int Ans = 0;
for(int i = 0; i < 26; ++ i) Ans += DP[N][i];
printf("%i\n", Ans);
return 0;
}