#include <bits/stdc++.h>
using namespace std;
long long dp[36][36];
void st() {
  memset(dp, 0, sizeof(dp));
  dp[1][1] = 1;
  for (int n = 2; n < 36; n++) {
    for (int i = 1; i <= n; i++) {
      int x = i - 1, y = n - i;
      if (x == 0)
        for (int r = 1; r <= y; r++) dp[n][r + 1] += dp[n - 1][r];
      if (y == 0)
        for (int l = 1; l <= x; l++) dp[n][l + 1] += dp[n - 1][l];
      for (int l = 1; l <= x; l++)
        for (int r = 1; r <= y; r++) {
          dp[n][max(l, r) + 1] += dp[x][l] * dp[y][r];
        }
    }
  }
  for (int i = 1; i < 36; i++)
    for (int j = i - 1; j >= 0; j--) dp[i][j] += dp[i][j + 1];
}
int main() {
  st();
  int n, h;
  while (~scanf("%d%d", &n, &h)) {
    printf("%I64d\n", dp[n][h]);
  }
  return 0;
}
