Pagini recente » Cod sursa (job #531303) | Cod sursa (job #2882354) | Cod sursa (job #1287558) | Cod sursa (job #378005) | Cod sursa (job #2086165)
#include <fstream>
#define NMAX 1001
#define MOD 104659
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
int n, m, d[NMAX][27];
bool a[27][27];
int main()
{
char x, y;
in >> n >> m;
for (int i = 0; i < m; i++) {
in >> x >> y;
a[x - 'a' + 1][y - 'a' + 1] = true;
a[y - 'a' + 1][x - 'a' + 1] = true;
}
for (int j = 1; j <= 26; j++) {
d[1][j] = 1;
}
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= 26; j++) {
for (int k = 1; k <= 26; k++) {
if (!a[k][j]) {
d[i][j] += d[i - 1][k];
d[i][j] %= MOD;
}
}
}
}
//for (int i = 1; i <= 26; i++) {
// for (int j = 1; j <= 26; j++) {
// out << a[i][j] << ' ';
// }
// out << '\n';
//}
//out << '\n';
//for (int i = 1; i <= n; i++) {
// for (int j = 1; j <= 26; j++) {
// out << d[i][j] << ' ';
// }
// out << '\n';
//}
int s = 0;
for (int i = 1; i <= 26; i++) {
s += d[n][i];
}
out << s;
return 0;
}