Pagini recente » Cod sursa (job #1397561) | Cod sursa (job #2537777) | Cod sursa (job #1919127) | Cod sursa (job #3192258) | Cod sursa (job #2912738)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "nrcuv.in" );
ofstream fout( "nrcuv.out" );
const int MAXN = 1005;
const int MOD = 104659;
const int ALPHA = 26;
bool f[ALPHA][ALPHA];
int dp[MAXN][ALPHA];
int main() {
int n, m;
char x, y;
fin >> n >> m;
while ( m-- ) {
fin >> x >> y;
f[x - 'a'][y - 'a'] = true;
f[y - 'a'][x - 'a'] = true;
}
for ( int ch = 0; ch < ALPHA; ++ch ) {
dp[1][ch] = 1;
}
for ( int i = 2; i <= n; ++i ) {
for ( int p = 0; p < ALPHA; ++p ) {
for ( int q = 0; q < ALPHA; ++q ) {
if ( f[p][q] ) continue;
dp[i][p] = (dp[i][p] + dp[i-1][q]) % MOD;
}
}
}
int res = 0;
for ( int p = 0; p < ALPHA; ++p ) {
res = (res + dp[n][p]) % MOD;
}
fout << res;
fin.close();
fout.close();
return 0;
}