Pagini recente » Cod sursa (job #725141) | Cod sursa (job #1098112) | Cod sursa (job #1134371) | Cod sursa (job #2681740) | Cod sursa (job #2003109)
#include<cstdio>
#include<cstring>
using namespace std;
const int nmax=1005;
const int mod=104659;
int dp[nmax][50];
bool interzis[35][35];
inline int gnum(char ch)
{
return ch-'a'+1;
}
int main()
{
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
int n,i,j,m,k;
scanf("%d%d\n",&n,&m);
char ch1,ch2;
for(i=1;i<=m;++i)
{
scanf("%c %c\n",&ch1,&ch2);
interzis[gnum(ch2)][gnum(ch1)]=1;
interzis[gnum(ch1)][gnum(ch2)]=1;
}
for(i=1;i<=26;++i)
dp[1][i]=1;
for(i=2;i<=n;++i)
for(j=1;j<=26;++j)
for(k=1;k<=26;++k)
if(!interzis[j][k])
{
dp[i][j]+=dp[i-1][k];
if(dp[i][j]>=mod)
dp[i][j]-=mod;
}
long long sum=0;
for(i=1;i<=26;++i)
sum+=dp[n][i];
sum%=mod;
printf("%lld",sum);
}