Pagini recente » simulare_11_12_2003 | Cod sursa (job #743379) | Cod sursa (job #2574282) | Cod sursa (job #247318) | Cod sursa (job #628955)
Cod sursa(job #628955)
#include <stdio.h>
#define NMAX 1005
#define MOD 104659
int viz[27][27], res[NMAX][NMAX];
int power(int base, int exp)
{
int res = 1, i;
for (i=0; (1<<i) <= exp; ++i) {
if (((1<<i)&exp) > 0)
res = (res*base)%MOD;
base = (base*base)%MOD;
}
return res;
}
int main()
{
int n, m;
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
int i, j, k, sum=0;
char a, b;
scanf("%d %d\n", &n, &m);
for (i=1; i<=m; ++i) {
scanf("%c %c\n", &a, &b);
viz[a-97][b-97] = 1;
viz[b-97][a-97] = 1;
}
for (i=0; i<26; ++i)
res[1][i] = 1;
for (i=1; i<=n; ++i)
for (j=0; j<26; ++j)
for (k=0; k<26; ++k)
if (!viz[j][k])
res[i+1][k] = (res[i][j] + res[i+1][k])%MOD;
for (j=0; j<26; ++j)
sum = (sum + res[n][j])%MOD;
printf("%d\n", sum);
return 0;
}