#include <bits/stdc++.h>
using namespace std;
int N, H;
unsigned long long dp[35][35];
bool vis[35][35];
unsigned long long get(int n, int h) {
  if (n == 0) return 1;
  if (h <= 0) return 0;
  unsigned long long &ret = dp[n][h];
  if (vis[n][h]) return ret;
  vis[n][h] = 1;
  ret = 0;
  for (int i = 0; i < n; i++) ret += get(i, h - 1) * get(n - i - 1, h - 1);
  return ret;
}
int main() {
  scanf("%d%d", &N, &H);
  unsigned long long t = get(N, N);
  memset(vis, 0, sizeof vis);
  cout << t - get(N, H - 1) << endl;
  return 0;
}
