Pagini recente » Cod sursa (job #681189) | Cod sursa (job #2634485) | Cod sursa (job #1238853) | Cod sursa (job #1131879) | Cod sursa (job #2161346)
#include <fstream>
#define letters ('z' - 'a' + 1)
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
const int MOD = 104659;
const int NMAX = 1005;
int N, M;
int DP[NMAX][30];
bool V[30][30];
void Read(){
in >> N >> M;
in.get();
for(int i = 1; i <= M; ++i){
char a, b;
in >> a >> b;
V[a - 'a' + 1][b - 'a' + 1] = true;
V[b - 'a' + 1][a - 'a' + 1] = true;
}
}
void Solve(){
for(int i = 1; i <= letters; ++i)
DP[1][i] = 1;
for(int i = 2; i <= N; ++i)
for(int j = 1; j <= letters; ++j)
for(int k = 1; k <= letters; ++k)
if(V[j][k] == false)
DP[i][j] = (DP[i][j] + DP[i - 1][k]) % MOD;
}
void Print(){
int sol = 0;
for(int i = 1; i <= letters; ++i)
sol = (sol + DP[N][i]) % MOD;
out << sol << "\n";
}
int main(){
Read();
Solve();
Print();
return 0;
}