Pagini recente » Cod sursa (job #2469575) | Cod sursa (job #605199) | Cod sursa (job #1518753) | Cod sursa (job #1620371) | Cod sursa (job #2263059)
#include <fstream>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int MOD = 104659;
int N, M;
int dp[1005][27];
bool d[27][27];
int main()
{
fin >> N >> M;
fin.get();
char a, b;
while(M--)
{
fin >> a >> b;
d[a - 'a' + 1][b - 'a' + 1] = true;
d[b - 'a' + 1][a - 'a' + 1] = true;
}
for(int j = 1; j <= 26; j++)
dp[1][j] = 1;
for(int i = 2; i <= N; i++)
for(int j = 1; j <= 26; j++)
for(int k = 1; k <= 26; k++)
if(!d[j][k])
{
dp[i][k] += dp[i - 1][j];
dp[i][k] %= MOD;
}
int answer = 0;
for(int j = 1; j <= 26; j++)
{
answer += dp[N][j];
answer %= MOD;
}
fout << answer;
return 0;
}