#include <bits/stdc++.h>
using namespace std;
long long dp[40][40];
long long DP(int n, int h) {
  if (dp[n][h] >= 0) return dp[n][h];
  if (h == 0) return dp[n][h] = n <= 0 ? 1 : 0;
  if (n == 0) return dp[n][h] = h >= 0 ? 1 : 0;
  dp[n][h] = 0;
  for (int k = 1; k <= n; k++) {
    dp[n][h] += DP(k - 1, h - 1) * DP(n - k, h - 1);
  }
  return dp[n][h];
}
int main() {
  memset(dp, -1, sizeof(dp));
  int n, h;
  while (cin >> n >> h) cout << DP(n, n) - DP(n, h - 1) << endl;
  return 0;
}
