Pagini recente » Cod sursa (job #598667) | Cod sursa (job #2764094) | Cod sursa (job #588871) | Cod sursa (job #293911) | Cod sursa (job #2119367)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");
#define limc 26
#define lim 1010
#define mod 104659
int n,m;
bool bad[limc][limc];
int dp[lim][limc];
int main()
{
char x,y;
fin>>n>>m;
for (int i=1; i<=m; i++)
{
fin>>x>>y;
bad[x-'a'][y-'a']=bad[y-'a'][x-'a']=1;
}
for (int i=0; i<26; i++) dp[1][i]=1;
for (int i=2; i<=n; i++)
for (int c=0; c<26; c++)
for (int cc=0; cc<26; cc++)
if (!bad[c][cc])
dp[i][c] = 1LL*(dp[i][c] + dp[i-1][cc]) % mod;
long long rez=0;
for (int c=0; c<26; c++)
rez = 1LL*(rez + dp[n][c]) % mod;
fout<<rez;
return 0;
}