Pagini recente » Cod sursa (job #3242245) | Cod sursa (job #2380903) | Cod sursa (job #2227827) | Cod sursa (job #2877822) | Cod sursa (job #3122723)
#include <fstream>
using namespace std;
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
const int N = 1000, M = 2000, MOD = 104659;
int n, m;
bool per[26][26];
int dp[N+1][26];
int main()
{
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
char l1, l2;
cin >> l1 >> l2;
int p1, p2;
p1 = l1-'a';
p2 = l2-'a';
per[p1][p2] = per[p2][p1] = 1;
}
for (int j = 0; j < 26; j++)
dp[1][j] = 1;
for (int i = 2; i <= n; i++)
{
for (int j = 0; j < 26; j++)
{
for (int l2 = 0; l2 < 26; l2++)
{
if (per[j][l2] == 1)
continue;
dp[i][l2] += dp[i-1][j];
dp[i][l2] %= MOD;
}
}
}
int sum = 0;
for (int j = 0; j < 26; j++)
{
sum += dp[n][j];
sum %= MOD;
}
cout << sum;
return 0;
}