Pagini recente » Cod sursa (job #773955) | Cod sursa (job #2867646) | Cod sursa (job #2376766) | Cod sursa (job #685278) | Cod sursa (job #1580678)
#include <cstdio>
using namespace std;
int l,m,t;
long long clc;
bool viz[30][30];
char sol[30];
int toint(char c) {
return (int)c - 96;
}
void input() {
scanf("%d %d\n", &l ,&m);
char c1,c2;
for(int i = 1; i <= m; ++i) {
scanf("%c %c\n", &c1, &c2);
if(not viz[toint(c1)][toint(c2)]) {
++ t;
viz[toint(c1)][toint(c2)] = true;
}
if(not viz[toint(c2)][toint(c1)]) {
++ t;
viz[toint(c2)][toint(c1)] = true;
}
}
}
void back(int pos) {
if(pos == l) {
++ clc;
return;
}
for(char c = 'a'; c <= 'z'; ++c)
if(not viz[toint(c)][toint(sol[pos-1])]) {
sol[pos] = c;
back(pos+1);
}
}
int main() {
freopen("nrcuv.in", "r", stdin);
freopen("nrcuv.out", "w", stdout);
input();
for(char c = 'a'; c <= 'z'; ++c){
sol[0] = c;
back(1);
}
printf("%lld\n", clc);
return 0;
}