Pagini recente » Cod sursa (job #3274917) | Cod sursa (job #2871462) | Cod sursa (job #496458) | Cod sursa (job #212603) | Cod sursa (job #3165696)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int DIM = 1010;
const int MOD = 104659;
int n, m;
int dp[CHAR_MAX][DIM];
bool mat[CHAR_MAX][CHAR_MAX];
int main() {
fin >> n >> m;
for (int i = 1; i <= m; i++) {
char a, b;
fin >> a >> b;
mat[a][b] = mat[b][a] = true;
}
for (char l = 'a'; l <= 'z'; l++)
dp[l][1] = 1;
for (int i = 2; i <= n; i++) {
for (int l1 = 'a'; l1 <= 'z'; l1++) {
dp[l1][i] = 0;
for (char l2 = 'a'; l2 <= 'z'; l2++) {
if (!mat[l1][l2]) {
dp[l1][i] += dp[l2][i - 1];
dp[l1][i] %= MOD;
}
}
}
}
int sol = 0;
for (char l = 'a'; l <= 'z'; l++)
sol = (sol + dp[l][n]) % MOD;
fout << sol;
return 0;
}