#include <bits/stdc++.h>
using namespace std;
const int inf = 1999999999;
const double pi = acos(-1.0);
const double eps = 1e-10;
char gc() {
  char c;
  while (isspace(c = getchar()))
    ;
  return c;
}
int gs(char* s) {
  gets(s);
  int l = strlen(s);
  while (l && isspace(s[l - 1])) s[--l] = 0;
  return l;
}
long long dp[36][36];
long long dfs(int h, int n) {
  if (dp[h][n] != -1) return dp[h][n];
  if (n == 0)
    dp[h][n] = (h == 0);
  else if (n == 1)
    dp[h][n] = (h == 1);
  else {
    long long s = 0;
    for (int i = 0; i < n; i++) {
      int na = min(h - 1, i), nb = min(h - 1, n - i - 1);
      for (int j = 0; j <= na; j++)
        for (int k = 0; k <= nb; k++)
          if (j == h - 1 || k == h - 1) s += dfs(j, i) * dfs(k, n - i - 1);
    }
    dp[h][n] = s;
  }
  return dp[h][n];
}
int main() {
  ios::sync_with_stdio(false);
  int a, b;
  cin >> a >> b;
  for (int i = 0; i <= 35; i++)
    for (int j = 0; j <= 35; j++) dp[i][j] = -1;
  long long best = 0;
  for (int i = b; i <= a; i++) best += dfs(i, a);
  cout << best << ('\n');
  return 0;
}
