Pagini recente » Cod sursa (job #1477349) | Cod sursa (job #1676737) | Cod sursa (job #2043303) | Cod sursa (job #358829) | Cod sursa (job #1458070)
#include <fstream>
#define Lit_Max 26
#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';
fin.get();
fin.get(c2); c2 -= 'a';
F[c1][c2] = F[c2][c1] = 1;
}
for (int i = 0; i < Lit_Max; i++) DP[i][1] = 1;
for (int i = 2; i <= N; i++)
{
for (int j = 0; j < Lit_Max; j++)
{
for (int k = 0; k < Lit_Max; k++)
{
if (!F[j][k])
{
DP[j][i] = (DP[j][i] + DP[k][i - 1]) % MOD;
}
}
}
}
for (int i = 0; i < Lit_Max; i++) sol = (sol + DP[i][N]) % MOD;
fout << sol << '\n';
return 0;
}