Pagini recente » Cod sursa (job #977206) | Cod sursa (job #1322336) | Cod sursa (job #2526566) | Cod sursa (job #2330800) | Cod sursa (job #1674107)
#include <stdio.h>
#include <algorithm>
#include <math.h>
using namespace std;
#define ll long long unsigned
#define pb push_back
#define mp make_pair
const int MOD = 104659;
bool res[26][26];
int dp[1005][26];
void init(){
int i;
for(i = 0;i < 26;i++){
dp[1][i] = 1;
}
}
void solve(int n){
int i,j,k;
for(i = 1;i <= n;i++){
for(j = 0;j < 26;j++){
for(k = 0;k < 26;k++){
if(res[j][k] == 0){
dp[i][j] = (dp[i][j]+dp[i-1][k])%MOD;
}
}
}
}
}
int sum(int n){
int i;
int ans = 0;
for(i = 0;i < 26;i++){
ans = (ans+dp[n][i])%MOD;
}
return ans;
}
int main()
{
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
int n,m,i;
char c1,c2;
scanf("%d %d",&n,&m);
scanf("%c",&c1);
for(i = 1;i <= m;i++){
scanf("%c",&c1);
scanf("%c",&c2);
scanf("%c",&c2);
res[c1-'a'][c2-'a'] = 1;
res[c2-'a'][c1-'a'] = 1;
scanf("%c",&c2);
}
init();
solve(n);
printf("%d",sum(n));
return 0;
}