Cod sursa(job #681232)
#include <iostream>
#include <fstream>
using namespace std;
int rele[200][200];
int bst[1028][200], N, M;
const int mod = 104659;
int main()
{
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");
in >> N >> M;
int i;
char j, k;
char a, b;
for(i = 1; i <= M; i++)
{
in >> a >> b;
rele[a][b] = 1;
rele[b][a] = 1;
}
for(j = 'a'; j <= 'z'; j++)
bst[1][j] = 1;
for(i = 2; i <= N; i++)
for(j = 'a'; j <= 'z'; j++)
for(k = 'a'; k <= 'z'; k++)
if(!rele[j][k])
bst[i][k] = (bst[i][k] + bst[i - 1][j]) % mod;
int Tot = 0;
for(j = 'a'; j <= 'z'; j++)
Tot += bst[N][j];
Tot %= mod;
out << Tot;
return 0;
}