Pagini recente » Cod sursa (job #1857735) | Cod sursa (job #851095) | Istoria paginii runda/oji-10-2 | Cod sursa (job #628756) | Cod sursa (job #1232552)
#include <fstream>
#define MOD 104659
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int MAXN = 1005;
int N, M;
long long dp[MAXN][30];
char Used[30][30];
int main()
{
fin >> N >> M;
for (int i = 1; i <= M; ++i)
{
char a, b;
fin >> a >> b;
Used[a - 'a'][b - 'a'] = 1;
Used[b - 'a'][a - 'a'] = 1;
}
for (int i = 0; i < 26; ++i)
dp[1][i] = 1;
for (int i = 2; i <= N; ++i)
{
for (int j = 0; j < 26; ++j)
{
for (int k = 0; k < 26; ++k)
if (!Used[j][k])
dp[i][k] = (dp[i][k] + dp[i - 1][j]) % MOD;
}
}
for (int i = 0; i < 25; ++i)
dp[N][25] += dp[N][i];
fout << dp[N][25] % MOD << '\n';
fin.close();
fout.close();
return 0;
}