Pagini recente » Cod sursa (job #715595) | Cod sursa (job #2637343) | Cod sursa (job #995379) | Cod sursa (job #268111) | Cod sursa (job #2339892)
#include <cstdio>
#define MOD 104659
using namespace std;
int inter[27][27];
int fr[27];
int n, m;
int d[1005][27];
void mat(){
char c, b;
for(int i=1;i<=m;i++)
{
scanf("%c %c\n",&c,&b);
inter[c-'a'][b-'a']++;
inter[b-'a'][c-'a']++;
}
}
int progrDin(){
///d[i][x] = numarul de cuvinte de i litere
///care se termina cu litera x
/**
d[i][y]=suma(d[i][x])
*/
for(int i=0; i<=26;i++)
d[1][i]=1;
for(int i=2; i<=n; i++)
{
for(int j=0; j<26; j++)
{
for(int k=0; k<26;k++)
if(inter[j][k]==0 && inter[k][j]==0)///daca pot fi una dupa alta
d[i][j]=(d[i][j]+d[i-1][k])%MOD;
}
}
int nr=0;
for(int i=0; i<26; i++)
{
nr=(d[n][i]+nr)%MOD;
}
return (nr%MOD);
}
int main()
{
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
scanf("%d %d\n",&n, &m);
mat();
printf("%d",progrDin());
return 0;
}