Pagini recente » Cod sursa (job #1516946) | Cod sursa (job #1012176) | Cod sursa (job #2559942) | Cod sursa (job #844268) | Cod sursa (job #1424133)
#include <fstream>
#include <iostream>
#include <memory.h>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int main(){
int n,m;
fin >> n >> m;
bool viz[27][27];
int mem[1005][27];
memset(viz,0,sizeof(viz));
for(int i = 0; i <=n;i++)
for(int j = 0; j <= 'z'-'a'; j++)
mem[i][j] = 0;
for(int i = 0 ; i < m ; i++){
char x,y;
fin >> x >> y;
viz[x-'a'][y-'a'] = true;
viz[y-'a'][x-'a'] = true;
}
for(int i = 0; i < 26; i++){
mem[n-1][i] = 1;
}
for(int i = n-1; i >=0; i--){
for(int q = 0 ; q <= 'z'-'a'; q++)
for(int j =0; j <= 'z'-'a'; j++)
if(!viz[q][j])
mem[i][q] = (mem[i][q] + mem[i+1][j])%104659;
}
int ans = 0;
for(int i = 0; i < 26; i++)
ans= (1LL*ans+mem[0][i])%104659;
fout << ans%104659 << endl;
return 0;
}