Pagini recente » Cod sursa (job #2355937) | Cod sursa (job #738382) | Cod sursa (job #1282935) | Cod sursa (job #1571595) | Cod sursa (job #2037116)
#include <fstream>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int NMax = 1000;
const int Sigma = 26;
const int MOD = 104659;
int DP[NMax + 5][Sigma + 5];
int A[Sigma + 5][Sigma + 5];
int N,M;
void Read()
{
fin >> N >> M;
for(int i = 1; i <= M; ++i)
{
char x,y;
fin >> x >> y;
A[x-'a'][y-'a'] = A[y-'a'][x-'a'] = 1;
}
}
void Solve()
{
for(int i = 0; i < Sigma; ++i)
DP[1][i] = 1;
for(int i = 2; i <= N; ++i)
{
for(int j = 0; j < Sigma; ++j)
for(int k = 0; k < Sigma; ++k)
if(A[j][k] == 0)
{
DP[i][j] += DP[i-1][k];
DP[i][j] %= MOD;
}
}
}
void Print()
{
int Sol = 0;
for(int i = 0; i < Sigma; ++i)
{
Sol += DP[N][i];
Sol %= MOD;
}
fout << Sol << "\n";
}
int main()
{
Read();
Solve();
Print();
return 0;
}