#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9 + 7;
signed main() {
int n, cs, cf;
cin >> n >> cs >> cf;
// if(n <= 8){
// vector<int> a(n);
// for (int i = 0; i < n; i++) {
// a[i] = i + 1;
// }
// int cnt = 0;
// do{
// if(a[0] == cs and a[n - 1] == cf){
// bool ok = true;
// for (int i = 1; i < n-1; i++) {
// int pre = a[i - 1];
// int cur = a[i];
// int nxt = a[i + 1];
// if(pre < cur and nxt >= cur) {
// ok = false;
// break;
// }
// if(pre >= cur and nxt <= cur){
// ok = false;
// break;
// }
// }
// if(ok) cnt++;
// }
// }while(next_permutation(a.begin(), a.end()));
// cout << cnt;
// return 0;
// }
int dp[n + 1][n + 1][2];
int last = -1;
dp[cs][cs][0] = 1;
dp[cs][cs][1] = 1;
for (int len = 1; len <= n; len++) {
for (int l = 1; l <= n; l++) {
int r = l + len - 1;
if(l >= 2) dp[l-1][r][1] += dp[l][r][0];
if(r <= n - 1) dp[l][r + 1][0] += dp[l][r][1];
}
}
// for (int l = 1; l <= n; l++) {
// for (int r = l; r <= n; r++) {
// if(l >= 2) dp[l-1][r][1] += dp[l][r][0];
// if(r <= n - 1) dp[l][r + 1][0] += dp[l][r][1];
// }
// }
int ans;
if (cf == 1) {
ans = dp[1][n][0] + dp[1][n][1];
}
else if (cf == n) {
ans = dp[1][n][0] + dp[1][n][1];
}
cout << ans;
return 0;
}