#include <bits/stdc++.h>
using namespace std;
int const lim = 40;
long long inf = 1e18;
long long dp[lim + 3][lim + 3][lim + 3];
long long solve(int hi, int l, int r) {
  if (!hi && r < l) return 1;
  if (hi < 0 || r < l) return 0;
  long long &ret = dp[hi][l][r];
  if (ret != -1) return ret;
  ret = 0;
  for (int i = l; i <= r; i++) {
    for (int j = 0; j < hi - 1; j++)
      ret += 1ll * solve(j, l, i - 1) * solve(hi - 1, i + 1, r);
    for (int j = 0; j < hi - 1; j++)
      ret += 1ll * solve(hi - 1, l, i - 1) * solve(j, i + 1, r);
    ret += 1ll * solve(hi - 1, l, i - 1) * solve(hi - 1, i + 1, r);
  }
  return ret;
}
int main() {
  int n, h;
  cin >> n >> h;
  memset(dp, -1, sizeof dp);
  long long ans = 0;
  for (int i = h; i <= n; i++) {
    ans += solve(i, 1, n);
  }
  cout << ans << endl;
}
