Pagini recente » Profil M@2Te4i | Cod sursa (job #124124) | Istoria paginii runda/simulare_001/clasament | Cod sursa (job #174842) | Cod sursa (job #1730764)
#include<cstdio>
#define MAXN 1010
#define SIGMA 30
#define MOD 104659
using namespace std;
int ok[SIGMA][SIGMA];
int dp[MAXN][SIGMA];
int main(){
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
int n,m,i,j,k,answer=0;
char a,b;
scanf("%d%d\n",&n,&m);
for(i=1;i<=m;i++){
scanf("%c %c\n",&a,&b);
ok[a-'a'+1][b-'a'+1]=ok[b-'a'+1][a-'a'+1]=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(ok[j][k]==0){
dp[i][k]+=dp[i-1][j];
if(dp[i][k]>=MOD)
dp[i][k]-=MOD;
}
for(i=1;i<=26;i++)
answer+=dp[n][i];
printf("%d",answer%MOD);
return 0;
}