Pagini recente » Cod sursa (job #995950) | Cod sursa (job #3200977) | Cod sursa (job #1019863) | Cod sursa (job #3251695) | Cod sursa (job #1873526)
#include<cstdio>
#include<vector>
#define mod 104659
using namespace std;
long long ma[27][1001];
vector<int> v[27],v2[27];
int main ()
{freopen ("nrcuv.in","r",stdin);
freopen ("nrcuv.out","w",stdout);
int n,m,i,j,k,x;
char a,b;
scanf("%d %d ",&n,&m);
for(i=1;i<=m;i++)
{scanf("%c %c ",&a,&b);
x=0;
for(j=0;j<v2[a-'a'+1].size()&&x==0;j++)
if(v2[a-'a'+1][j]==b-'a'+1)
x=1;
if(x==0)
v2[a-'a'+1].push_back(b-'a'+1);
x=0;
for(j=0;j<v2[b-'a'+1].size()&&x==0;j++)
if(v2[b-'a'+1][j]==a-'a'+1)
x=1;
if(x==0)
v2[b-'a'+1].push_back(a-'a'+1);
}
for(i=1;i<=26;i++)
for(j=1;j<=26;j++)
{x=0;
for(k=0;k<v2[i].size()&&x==0;k++)
if(v2[i][k]==j)
x=1;
if(x==0)
v[i].push_back(j);
}
for(i=1;i<=26;i++)
ma[i][1]=1;
for(j=2;j<=n;j++)
for(i=1;i<=26;i++)
for(k=0;k<v[i].size();k++)
ma[v[i][k]][j]=(ma[v[i][k]][j]+ma[i][j-1])%mod;
x=0;
for(i=1;i<=26;i++)
x=(x+ma[i][n])%mod;
printf("%d",x);
return 0;
}