#include <bits/stdc++.h>
using namespace std;
long long n, h, f[100], g[100][100];
long long fun(long long x) {
  int i;
  if (f[x] > -1) return 0;
  f[x] = 0;
  for (i = 0; i < x; ++i) {
    fun(i);
    fun(x - i - 1);
    f[x] += f[i] * f[x - i - 1];
  }
  return 0;
}
long long rec(long long x, long long d) {
  int i;
  if (g[x][d] > -1) return 0;
  g[x][d] = 0;
  if (d > x) return 0;
  if (d == 1) {
    g[x][d] = f[x];
    return 0;
  }
  for (i = 0; i < x; ++i) {
    rec(i, d - 1);
    rec(x - i - 1, d - 1);
    g[x][d] += g[i][d - 1] * f[x - i - 1] + g[x - i - 1][d - 1] * f[i] -
               g[i][d - 1] * g[x - i - 1][d - 1];
  }
  return 0;
}
int main() {
  int i, j;
  cin >> n >> h;
  for (i = 0; i <= n; ++i) f[i] = -1;
  f[0] = 1;
  for (i = 0; i <= n; ++i)
    for (j = 0; j <= n; ++j) g[i][j] = -1;
  g[0][0] = 1;
  fun(n);
  rec(n, h);
  cout << g[n][h] << endl;
  return 0;
}
