Pagini recente » Cod sursa (job #3368947) | Cod sursa (job #3368948) | Cod sursa (job #3368946) | Cod sursa (job #3368929) | Cod sursa (job #3368949)
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <queue>
#include <iomanip>
#include <deque>
#include <climits>
#include <bitset>
using namespace std;
long long i, j, x, dp[1001][31], n, m, fv[31][31], sum;
char a, b;
int main()
{
ifstream cin ("nrcuv.in");
ofstream cout ("nrcuv.out");
cin >> n >> m;
while ( m > 0 ) {
cin >> a >> b;
fv[a-'a'][b-'b'] = 1;
fv[b-'b'][a-'a'] = 1;
m--;
}
for ( i = 'a'-'a'; i <= 'z'-'a'; i++ ) {
dp[1][i] = 1;
}
for ( i = 2; i <= n; i++ ) {
for ( j = 'a'-'a'; j <= 'z'-'a'; j++ ) {
for ( x = 'a'-'a'; x <= 'z'-'a'; x++ ) {
if ( fv[x][j] == 0 ) {
dp[i][j] += dp[i-1][x];
dp[i][j] %= 104659;
}
}
}
}
for ( i = 'a'-'a'; i <= 'z'-'a'; i++ ) {
sum += dp[n][i];
sum %= 104659;
}
cout << sum;
return 0;
}