Pagini recente » Cod sursa (job #1003735) | Cod sursa (job #468103) | Cod sursa (job #3324196) | Cod sursa (job #1834468) | Cod sursa (job #3316162)
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int N =1000;
const int NL=26;
const int MOD=104659;
int nrc[N+1][NL];
bool inc[NL][NL];
int main(){
int n, m;
in>>n>>m;
for(int i=0; i<m; i++){
char c1, c2;
in>> c1 >> c2;
inc[c1-'a'][c2-'a']=inc[c2-'a'][c1-'a']=true;
}
for(int j=0; j<NL; j++){
nrc[1][j]=1;
}
for(int i=2; i<=n; i++){
for(int j=0; j<NL; j++){
for(int k= 0; k<NL; k++){
if(!inc[k][j]){
nrc[i][j] += nrc[i-1][k];
if(nrc[i][j]>=MOD){
nrc[i][j]-=MOD;
}
}
}
}
}
int rez=0;
for (int j = 0; j < NL; j++)
{
rez += nrc[n][j];
if (rez >= MOD)
{
rez -= MOD;
}
}
out << rez << "\n";
in.close();
out.close();
return 0;
}