Pagini recente » Cod sursa (job #825548) | Cod sursa (job #2078806) | Cod sursa (job #1957515) | Cod sursa (job #3254469) | Cod sursa (job #2186645)
#include <fstream>
#include <algorithm>
#define mp make_pair
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
int cuvinte['z'+1]['z'+1];
long long int ridPut(long long int a,long long int b){
a %= 104659;
if(b == 0) return 1;
else if(b == 1) return a;
else if(b%2 == 0) return (ridPut(a*a,b/2)) % 104659;
else if(b%2 == 1) return (a*(ridPut(a*a,(b-1)/2))) % 104659;
}
int main(){
int n,m;
fin>>n>>m;
long long int scadere = ridPut(26,n);
char a,b,i;
for(i = 1; i <= m; i++){
fin>>a>>b;
if(a > b) swap(a,b);
cuvinte[a][b] = 1;
}
long long int counter=0,j;
for(i = 'a'; i <= 'z'; i++){
for(j = 'a'; j <= 'z'; j++){
if(cuvinte[i][j] == 1){
if(i == j) counter++;
else counter +=2;
}
}
}
fout<<(scadere-counter) % 104659;
}