Pagini recente » Cod sursa (job #1666510) | Cod sursa (job #1916919) | Cod sursa (job #2353871) | Cod sursa (job #1379137) | Cod sursa (job #1108586)
#include <cstdio>
using namespace std;
#define NMAX 1015
#define CH(s) ((int)(s - 'a'))
#define MOD 104569
int N,M;
int Sol;
bool DieNachbarn[28][28];
int DP[NMAX][NMAX];
void Scannen()
{
freopen("nrcuv.in","r",stdin);
scanf("%d%d\n",&N,&M);
char x = 0,y = 0;
while(M--)
{
//scanf("%c %c\n",&x,&y);
char line[100];
fgets(line,95,stdin);
for(int i=0;!y;i++)
{
if('a' <= line[i] && line[i] <= 'z' )
if(!x)
x = line[i];
else
y = line[i];
}
DieNachbarn[CH(x)][CH(y)] = DieNachbarn[CH(y)][CH(x)] = true;
x = 0,y = 0;
}
}
void Losen()
{
for(int j=0;j<26;j++)
DP[1][j] = 1;
for(int i=2;i<=N;i++)
for(int j=0;j<26;j++)
for(int k=0;k<26;k++)
if(!DieNachbarn[k][j])
DP[i][j] = (DP[i][j] + DP[i-1][k]) % MOD;
for(int j=0;j<26;j++)
Sol = (Sol + DP[N][j]) % MOD;
}
void Drucken()
{
freopen("nrcuv.out","w",stdout);
printf("%d\n",Sol);
}
int main()
{
Scannen();
Losen();
Drucken();
return 0;
}