#include <bits/stdc++.h>
using namespace std;
const int N = 50;
long long dp[N][N];
int n, h;
bool read() {
  if (!(cin >> n >> h)) return false;
  return true;
}
void solve() {
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1;
  for (int cn = 1; cn <= n; ++cn) {
    for (int ch = 1; ch <= n; ++ch) {
      for (int l = 0; l < int(cn); ++l) {
        for (int hl = 0; hl < int(ch); ++hl) {
          dp[cn][ch] += dp[l][hl] * dp[cn - l - 1][ch - 1];
        }
        for (int hr = 0; hr < int(ch - 1); ++hr) {
          dp[cn][ch] += dp[l][ch - 1] * dp[cn - l - 1][hr];
        }
      }
    }
  }
  long long res = 0;
  for (int i = 0; i < int(n + 1); ++i)
    if (i >= h) res += dp[n][i];
  cout << res << endl;
}
int main() {
  while (read()) solve();
  return 0;
}
