#include <bits/stdc++.h>
using namespace std;
int n, h;
long long ans, f[40][40];
void pre() { scanf("%d%d", &n, &h); }
void work() {
  f[0][0] = 1;
  for (register int i = 1; i <= n; i++)
    for (register int j = 0; j < i; j++) {
      int b = i - j - 1;
      for (int l = 0; l <= j; l++)
        for (int k = 0; k <= b; k++) f[i][max(l, k) + 1] += f[j][l] * f[b][k];
    }
  for (register int i = h; i <= n; i++) ans += f[n][i];
  cout << ans << endl;
}
void work2() {
  for (register int i = 0; i <= n; i++) f[0][i] = 1;
  for (register int i = 1; i <= n; i++)
    for (register int j = 1; j <= n; j++)
      for (register int k = 0; k < j; k++)
        f[j][i] += f[k][i - 1] * f[j - k - 1][i - 1];
  cout << f[n][n] - f[n][h - 1] << endl;
}
int main() {
  pre();
  work2();
  return 0;
}
