Pagini recente » Cod sursa (job #502145) | Cod sursa (job #2326412) | Cod sursa (job #980006) | Cod sursa (job #1334038) | Cod sursa (job #2107580)
#include <iostream>
#include <fstream>
using namespace std;
const int N = 1001 , L = 26;
int d[N][L];
bool lit[L][L];
int main()
{
ifstream fin ( "nrcuv.in" );
ofstream fout ( "nrcuv.out" );
int n, m, a, b;
char c1, c2;
fin >> n >> m;
for ( int i = 1 ; i <= m ; i ++ )
{
fin >> c1 >> c2;
a = c1 - 'a';
b = c2 - 'a';
lit[a][b] = 1;
lit[b][a] = 1;
}
for ( int i = 0 ; i < 26 ; i++ )
d[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 ( !lit [j][k] )
{
d[i][j] += d[i-1][k];
d[i][j] %= 104659;
}
}
}
}
a = 0;
for ( int i = 0 ; i < 26; i++ )
{
a += d[n][i];
a %= 104659;
}
fout << a % 104659;
return 0;
}