#include const int NMAX = 30; const int MOD = 666013; using namespace std; int N,M; bool used[NMAX]; int answer = 0; int sol[NMAX]; int mat[NMAX]; void backt(int k, int NN) { if (k == NN+1) { answer += 1; } for (int i = 1; i <= NN; ++i) { if (i != k && !used[i]) { used[i] = true; sol[k] = i; backt(k + 1, NN); used[i] = false; } } } int main() { cin >> N >> M; mat[1] = 0; for (int i = 2; i <= M; ++i) { mat[i] = i*mat[i-1]; if (i % 2 == 0) { mat[i] += 1; } else { mat[i] -= 1; } } cout << mat[N]; }