Pagini recente » Cod sursa (job #2224158) | Cod sursa (job #193057) | Cod sursa (job #2340564) | Cod sursa (job #1623563) | Cod sursa (job #2086645)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
#define r 104659
bool f[26][26];
long long dp[26][1001];
int main()
{
int n,m,i,j,k;
char c1,c2;
in>>n>>m;
for(i=0;i<m;i++)
{
in>>c1>>c2;
c1-=97;
c2-=97;
if(!f[c1][c2])
{
dp[c1][1]++;
if(c1!=c2)
dp[c2][1]++;
f[c1][c2]=1;
f[c2][c1]=1;
}
}
for(i=0;i<26;i++)
dp[i][1]=26-dp[i][1];
for(i=2;i<n;i++)
{
for(j=0;j<26;j++)
{
for(k=0;k<26;k++)
dp[j][i]+=dp[k][i-1]*(1-f[j][k]);
dp[j][i]%=r;
}
}
for(i=1;i<26;i++)
dp[0][n-1]+=dp[i][n-1];
out<<dp[0][n-1]%r;
return 0;
}