#include <bits/stdc++.h>
using namespace std;
int MOD = 1e9 + 7;
long long dp[36][36][36];
long long dp2[36][36];
long long solve(int s, int e) {
  if (e < s) return 1;
  long long ans = 0;
  if (dp2[s][e] != -1) return dp2[s][e];
  for (int i = s; i <= e; i++) {
    ans += solve(s, i - 1) * solve(i + 1, e);
  }
  return dp2[s][e] = ans;
}
long long solve(int s, int e, int h) {
  if (e < s) {
    if (h == 0)
      return 1;
    else
      return 0;
  }
  if (dp[s][e][h] != -1) return dp[s][e][h];
  long long ans = 0;
  for (int i = s; i <= e; i++) {
    ans += solve(s, i - 1, max(0, h - 1)) * solve(i + 1, e) -
           solve(s, i - 1, max(0, h - 1)) * solve(i + 1, e, max(0, h - 1)) +
           solve(s, i - 1) * solve(i + 1, e, max(0, h - 1));
  }
  return dp[s][e][h] = ans;
}
int main() {
  int n, h;
  cin >> n >> h;
  memset(dp, -1, sizeof(dp));
  memset(dp2, -1, sizeof(dp2));
  cout << solve(1, n, h);
  return 0;
}
