Pagini recente » Cod sursa (job #2343702) | Cod sursa (job #1414284) | Cod sursa (job #2414858) | Cod sursa (job #522396) | Cod sursa (job #1816352)
#include <iostream>
#include <fstream>
using namespace std;
const int CMAX=26;
int v[1005][CMAX+5],n,m,s;
bool c[CMAX+5][CMAX+5];
char c1,c2;
int main()
{
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
cin>>n>>m;
for(int i=1;i<=m;i++) {
cin>>c1>>c2;
c[c1-'a'+1][c2-'a'+1]=true;
c[c2-'a'+1][c1-'a'+1]=true;}
for(int i=1;i<=CMAX;++i)
v[1][i]=1;
for(int l=1;l<=n;l++) {
for(int i=1;i<=CMAX;i++) {
for(int j=1;j<=CMAX;j++) {
if(c[i][j]==false)
v[l][i]=(v[l][i]+v[l-1][j])%104659;}}}
for(int i=1;i<=CMAX;++i)
s=(s+v[n][i])%104659;
cout<<s;
return 0;
}