Pagini recente » Cod sursa (job #1371936) | Cod sursa (job #1754848) | Cod sursa (job #1702521) | Cod sursa (job #2669749) | Cod sursa (job #1683890)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
const int Nmax = 30, mod = 104659;
int n, m, s[Nmax][Nmax], DP[1005][Nmax];
char a,b;
int main()
{
f>>n>>m;
while(m--)
{
f>>a>>b;
s[a-'a'+1][b-'a'+1] = 1;
s[b-'a'+1][a-'a'+1] = 1;
}
for(int i = 1; i <= 26; i++) DP[1][i] = 1;
for(int i = 2; i <= n; i++)
{
for(int j = 1; j <= 26; j++)
{
for(int l = 1; l <= 26; l++)
{
if(s[j][l] == 0)
{
DP[i][l] = (DP[i][l]+DP[i-1][j])%mod;
}
}
}
}
int sum = 0;
for(int i = 1; i <= 26; i++) sum = (sum+DP[n][i])%mod;
g<<sum<<'\n';
return 0;
}