Pagini recente » Cod sursa (job #882538) | Cod sursa (job #131119) | Cod sursa (job #2401470) | Cod sursa (job #879993) | Cod sursa (job #2351855)
#include <cstdio>
#define NMAX 1005
#define MOD 104659
using namespace std;
int dp[NMAX][30];
int perechi[30][30];
int main() {
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
int n, p;
char ch1, ch2;
scanf("%d%d\n",&n,&p);
for( int i = 1; i <= p; i ++ ) {
scanf("%c %c\n",&ch1,&ch2);
perechi[ch2-'a'][ch1-'a'] = 1;
perechi[ch1-'a'][ch2-'a'] = 1;
}
for( int i = 0; i < 27; i ++ )
dp[1][i] = 1;
for( int i = 2; i <= n; i ++ )
for( int k = 0; k < 26; k ++ )
for( int j = 0; j < 26; j ++ ) {
if( perechi[k][j] == 0 )
dp[i][k] += ( dp[i-1][j] ) % MOD;
}
long long sum = 0;
for( int i = 0; i < 26; i ++ )
sum += dp[n][i], sum %= MOD;
printf("%lld\n",sum);
return 0;
}