Pagini recente » Cod sursa (job #1506539) | Cod sursa (job #2316500) | Cod sursa (job #2273325) | Cod sursa (job #3257128) | Cod sursa (job #2151898)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int MOD = 104659;
int n, m, dp[1005][30];
bool deny[30][30];
int main()
{
in >> n >> m;
for (int i = 1; i <= m; ++i) {
char a, b;
in >> a >> b;
deny[a - 'a' + 1][b - 'a' + 1] = true;
deny[b - 'a' + 1][a - 'a' + 1] = true;
}
for (int i = 1; i <= 26; ++i) dp[1][i] = 1;
for (int i = 2; i <= n; ++i) {
for (int j = 1; j <= 26; ++j) {
for (int k = 1; k <= 26; ++k) {
if (!deny[j][k]) {
dp[i][j] += dp[i-1][k];
dp[i][j] %= MOD;
}
}
}
}
int sol = 0;
for (int j = 1; j <= 26; ++j) {
sol += dp[n][j];
sol %= MOD;
}
out << sol;
return 0;
}