#include<bits/stdc++.h>
using namespace std;
long long dge(int m) {
static vector<long long> v(21, -1);
if (m == 1) {
return 0;
}
if (m == 2) {
return 1;
}
if (v[m] != -1) {
return v[m];
}
v[m] = (m - 1) * (dge(m - 1) + dge(m - 2));
return v[m];
}
long long bin(int n, int m) {
static vector<vector<long long>> v(21, vector<long long>(21, 0));
if (m > n) {
return 0;
}
if (m == 0 || m == n) {
return 1;
}
if (v[n][m] > 0) {
return v[n][m];
}
v[n][m] = bin(n - 1, m - 1) + bin(n - 1, m);
return v[n][m];
}
int main() {
int n, m;
cin >> n >> m;
long long ans = bin(n, m) * dge(m);
cout << ans << endl;
return 0;
}