#include <bits/stdc++.h>
using namespace std;
long long n, h;
long long dp[50][50];
long long solve(long long node, long long ht) {
  if (node == 0 && ht == 0) return 1;
  if (node == 0 || ht == 0) return 0;
  if (dp[node][ht] != -1) return dp[node][ht];
  long long j, i, ans = 0;
  for (i = 1; i <= node; i++) {
    long long val = solve(i - 1, ht - 1);
    long long sum = 0;
    for (j = 0; j <= ht - 1; j++) sum += solve(node - i, j);
    ans = ans + val * sum;
    val = solve(node - i, ht - 1);
    sum = 0;
    for (j = 0; j < ht - 1; j++) sum += solve(i - 1, j);
    ans = ans + (sum * val);
  }
  dp[node][ht] = ans;
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> h;
  memset(dp, -1, sizeof(dp));
  long long i, ans = 0;
  for (i = h; i <= n; i++) {
    ans = ans + solve(n, i);
  }
  cout << ans;
  return 0;
}
