Pagini recente » Cod sursa (job #2966621) | Cod sursa (job #2192352) | Cod sursa (job #2273477) | Cod sursa (job #2326305) | Cod sursa (job #2492420)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("nrcuv.in") ;
ofstream out("nrcuv.out") ;
const int N = 1001 ;
const int M = 104659;
int dp[N][26], n, m, suma = 0 ;
bool a[26][26] ;
int main()
{
char x, y ;
in >> n >> m ;
for(int i = 0 ; i < m ; i++ )
{
in >> x >> y ;
a[x - 'a'][y - 'a'] = a[y - 'a'][x - 'a'] = true ;
}
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 k = 0 ; k < 26 ; k++ )
{
if( !a[k][j] )
{
dp[i][j] += dp[i-1][k] ;
dp[i][j] %= M;
}
}
}
}
for( int j = 0 ; j < 26 ; j++ )
{
suma = suma + dp[n][j] ;
suma %= M;
}
out << suma ;
return 0;
}