Pagini recente » Cod sursa (job #843997) | Cod sursa (job #919518) | Cod sursa (job #1449461) | Cod sursa (job #1316820) | Cod sursa (job #2114676)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int N = 1001;
const int MOD = 104659;
int dp[N][N],b[N][N];
int main()
{
int n,m,k,i,j,S = 0;
char x,y;
in >> n >> m;
for(i = 1;i <= m;i++){
in >> x >>y;
b[x - 'a'][y - 'a'] = b[y - 'a'][x - 'a'] = true;
}
for(j = 0; j < 26; j++)
dp[1][j] = 1;
for(i = 2; i <= n; i++)
for(j = 0;j < 26;j++)
for(k = 0;k < 26;k++){
if(!b[k][j]){
dp[i][j] += dp[i-1][k];
dp[i][j] %= MOD;
}
}
/*
for(i = 1; i <= n; i++) {
for (j = 0; j < 26; j++) {
out << dp[i][j] << "\t";
}
out << "\n";
}
*/
for(j = 0 ; j <= 26 ;j++){
S += dp[n][j];
S %= MOD;
}
out << S;
return 0;
}