Pagini recente » Cod sursa (job #2849691) | Cod sursa (job #2584497) | Cod sursa (job #2160743) | Cod sursa (job #1730166) | Cod sursa (job #2173763)
#include <cstdio>
const int MAXN = 1e3;
#define SIGMA 26
#define MOD 104659
bool r[SIGMA][SIGMA];
int d[MAXN + 1][SIGMA];
int main() {
FILE *fin, *fout;
int n, m, ans;
char a, b;
fin = fopen("nrcuv.in", "r");
fscanf(fin, "%d%d ", &n, &m);
for (int i = 0; i < m; ++i) {
a = fgetc(fin);
fgetc(fin);
b = fgetc(fin);
fgetc(fin);
r[a - 'a'][b - 'a'] = r[b - 'a'][a - 'a'] = 1;
}
fclose(fin);
for (int i = 0; i < SIGMA; ++i) {
d[1][i] = 1;
}
for (int i = 2; i <= n; ++i) {
for (int j = 0; j < SIGMA; ++j) {
for (int k = 0; k < SIGMA; ++k) {
if (!r[j][k]) {
d[i][j] = (d[i][j] + d[i - 1][k]) % MOD;
}
}
}
}
ans = 0;
for (int i = 0; i < SIGMA; ++i) {
ans = (ans + d[n][i]) % MOD;
}
fout = fopen("nrcuv.out", "w");
fprintf(fout, "%d\n", ans);
fclose(fout);
return 0;
}