Pagini recente » Cod sursa (job #996565) | Cod sursa (job #2716231) | Cod sursa (job #2113069) | Cod sursa (job #2416907) | Cod sursa (job #1479669)
#include <iostream>
#include <fstream>
#include <bitset>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int Sigma = 26;
const int NMax = 1005;
const int MOD = 104659;
int v[NMax][Sigma];
bitset < Sigma > mat[Sigma];
int main(){
int n, m, ans;
char a, b;
fin >> n >> m;
for(int i = 1; i <= m; i++){
fin >> a >> b;
mat[a - 'a'][b - 'a'] = mat[b - 'a'][a - 'a'] = 1;
}
for(int i = 0; i < Sigma; i++){
v[1][i] = 1;
}
for(int i = 2; i <= n; i++){
for(int j = 0; j < Sigma; j++){
for(int k = 0; k < Sigma; k++){
if(!mat[j][k] && !mat[k][j]){
v[i][j] = (v[i][j] + v[i - 1][k]) % MOD;
}
}
}
}
ans = 0;
for(int i = 0; i < Sigma; i++){
ans = (ans + v[n][i]) % MOD;
}
fout << ans;
return 0;
}