Pagini recente » Cod sursa (job #1786139) | Cod sursa (job #2683990) | Cod sursa (job #212147) | Borderou de evaluare (job #1036773) | Cod sursa (job #2674526)
#include <fstream>
using namespace std;
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");
const int N = 1001;
const int X = 104659;
int n;
int m;
int sol;
int dp[N][26];
bool cuv[26][26];
int cmax = 'z' - 'a' + 1;
void solve() {
for(int j = 0; j < cmax; j++)
dp[1][j] = 1;
for(int i = 2; i <= n; i++)
for(int j = 0; j < cmax; j++)
for(int k = 0; k < cmax; k++)
if(!cuv[j][k])
dp[i][j] = (dp[i][j] + dp[i - 1][k]) % X;
}
int main() {
in >> n >> m;
for(int i = 0; i < m; i++) {
char a;
char b;
in >> a >> b;
cuv[a - 'a'][b - 'a'] = 1;
cuv[b - 'a'][a - 'a'] = 1;
}
solve();
for(int i = 0; i < cmax; i++) {
sol += + dp[n][i];
sol = sol % X;
}
out << sol;
return 0;
}