Pagini recente » Cod sursa (job #2271369) | Cod sursa (job #2361269) | Cod sursa (job #1946838) | Cod sursa (job #1993376) | Cod sursa (job #2961718)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
static constexpr int ord(char ch) {
return ch - 'a';
}
constexpr size_t MOD = 104659;
int N, M, i, j, k, dp[1005][26], ans;
char letter1, letter2;
bool bad[26][26];
int main() {
fin >> N >> M;
for (i = 1; i <= M; ++i) {
fin >> letter1 >> letter2;
bad[ord(letter1)][ord(letter2)] = true;
bad[ord(letter2)][ord(letter1)] = true;
}
for (i = 0; i < 26; ++i)
dp[1][i] = 1;
for (i = 2; i <= N; ++i)
for (j = 0; j < 26; ++j)
for (k = 0; k < 26; ++k)
if (!bad[j][k])
dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD;
for (i = 0; i < 26; ++i)
ans = (ans + dp[N][i]) % MOD;
fout << ans;
fin.close();
fout.close();
return 0;
}