Pagini recente » Cod sursa (job #2372328) | Cod sursa (job #109294) | Cod sursa (job #2511143) | Cod sursa (job #749513) | Cod sursa (job #789910)
Cod sursa(job #789910)
#include<iostream>
#include<fstream>
using namespace std;
const int val=96,modul=104659;
int n,m,i,sol[30],stare[30],j,s,suma;
char a,b;
bool list[30][30];
void fact(int x[30],int y[30])
{
for(i=1;i<=26;i++)
x[i]=(x[i]*y[i])%modul;
}
void mult(int power)
{
while(power)
{
if(power & 1==1)
fact(sol,stare);
fact(stare,stare);
power>>=1;
}
}
int main()
{
freopen("nrcuv.in","r",stdin);
freopen("nrcuv.out","w",stdout);
scanf("%d %d\n",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%c %c\n",&a,&b);
list[a-val][b-val]=true;
list[b-val][a-val]=true;
}
for(i=1;i<=26;i++)
{
s=0;
for(j=1;j<=26;j++)
s+=list[i][j];
stare[i]=26-s;
sol[i]=1;
}
mult(n-1);
for(i=1;i<=26;i++)
suma+=sol[i];
if(suma>modul)
suma-=modul;
printf("%d\n",suma);
return 0;
}