#include <bits/stdc++.h>
using namespace std;
template <class T>
void show(T a, int n) {
  for (int i = 0; i < n; ++i) cout << a[i] << ' ';
  cout << endl;
}
template <class T>
void show(T a, int r, int l) {
  for (int i = 0; i < r; ++i) show(a[i], l);
  cout << endl;
}
const int N = 50;
const int M = 5000;
const int oo = 10000 * 10000 * 10;
int n, h;
long long dp[N][N];
int main() {
  int i, j, k, cas = 0;
  cin >> n >> h;
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1;
  for (i = 1; i <= n; ++i) {
    for (j = 1; j <= i; ++j) {
      for (k = 0; k < i; ++k) {
        long long sum = 0;
        for (int t = 0; t < j - 1; ++t) sum += dp[i - 1 - k][t];
        dp[i][j] += sum * dp[k][j - 1] * 2;
      }
      for (k = 0; k <= i - 1; ++k)
        dp[i][j] += dp[k][j - 1] * dp[i - 1 - k][j - 1];
    }
  }
  long long ans = 0;
  for (i = h; i <= n; ++i) ans += dp[n][i];
  cout << ans << endl;
  return 0;
}
