Pagini recente » Cod sursa (job #1689824) | Cod sursa (job #1821579) | Cod sursa (job #1599413) | Cod sursa (job #1080964) | Cod sursa (job #1458069)
#include <fstream>
#define Lit_Max 27
#define N_max 1010
#define MOD 104659
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
int N, M, sol;
int F[Lit_Max][Lit_Max], DP[Lit_Max][N_max];
int main()
{
fin >> N >> M;
while (M--)
{
char c1, c2;
fin.get();
fin.get(c1); c1 -= 'a' - 1;
fin.get();
fin.get(c2); c2 -= 'a' - 1;
F[c1][c2] = F[c2][c1] = 1;
}
for (int i = 1; i < Lit_Max; i++) DP[i][1] = 1;
for (int i = 2; i <= N; i++)
{
for (int j = 1; j < Lit_Max; j++)
{
for (int k = 1; k < Lit_Max; k++)
{
if (!F[j][k])
{
DP[j][i] = (DP[j][i] + DP[k][i - 1]) % MOD;
}
}
}
}
for (int i = 1; i < Lit_Max; i++) sol = (sol + DP[i][N]) % MOD;
fout << sol << '\n';
return 0;
}