Pagini recente » Cod sursa (job #2917800) | Cod sursa (job #2216028) | Cod sursa (job #791155) | Cod sursa (job #752252) | Cod sursa (job #3288180)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int mod=104659;
bool mat[28][28];///mat[x][y]==1 nu se poate
long long int dp[27][1005];
int main()
{
long long int n,m,i,j,k,ans=0;
char c1,c2;
fin>>n>>m;
for(i=1;i<=m;++i)
{
fin>>c1>>c2;
mat[c1-'a'+1][c2-'a'+1]=1;
mat[c2-'a'+1][c1-'a'+1]=1;
}
for(i=1;i<=26;++i)
{
dp[i][1]=1;
}
for(i=2;i<=n;++i)
{
for(j=1;j<=26;++j)
{
for(k=1;k<=26;++k)
{
if(!mat[k][j] && !mat[j][k])
dp[j][i]=(dp[k][i-1]+dp[j][i])%mod;
}
}
}
for(i=1;i<=26;++i)
{
ans+=dp[i][n];
ans=ans%mod;
}
fout<<ans;
return 0;
}