#include <bits/stdc++.h>
using namespace std;
vector<vector<long long> > dp;
long long calc(int n, int h) {
  if (dp[n][h] != -1) return dp[n][h];
  if (n < h or h == 0) return dp[n][h] = 0;
  long long r = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < h - 1; ++j) {
      r += 2 * calc(i, j) * calc(n - i - 1, h - 1);
    }
    r += calc(i, h - 1) * calc(n - i - 1, h - 1);
  }
  return dp[n][h] = r;
}
int main() {
  int n, h;
  cin >> n >> h;
  dp = vector<vector<long long> >(n + 1, vector<long long>(n + 1, -1));
  dp[0][0] = 1;
  dp[1][1] = 1;
  long long ans = 0;
  for (int i = h; i <= n; ++i) {
    ans += calc(n, i);
  }
  cout << ans << endl;
}
