#include #include int main() { using namespace std; int n, k; cin >> n >> k; k--; vector dp(n, vector(1 << n, vector(2, 0))); dp[k][1 << k][0] = 1; for (int b = 0; b < (1 << n); b++) { for (int i = 0; i < n; i++) { if (!(b >> i & 1)) { continue; } for (int j = 0; j < n; j++) { if (b >> j & 1) { continue; } int nb = b | (1 << j); if (i < j) { dp[j][nb][0] += dp[i][b][0]; dp[j][nb][1] += dp[i][b][1]; } else { dp[j][nb][1] += dp[i][b][0]; } } } } long long ans = 0; for (int i = 0; i < n; i++) { ans += dp[i][(1 << n) - 1][1]; } cout << ans << endl; }