#include <bits/stdc++.h>
using namespace std;
int main() {
  vector<vector<unsigned long long int> > menorigual(
      36, vector<unsigned long long int>(36, 0));
  vector<vector<unsigned long long int> > igual(
      36, vector<unsigned long long int>(36, 0));
  vector<unsigned long long int> vn(36, 0);
  for (int n = 0; n < 36; n++) {
    for (int h = 0; h < 36; h++) {
      if (h == 0) {
        if (n == 0) {
          menorigual[n][h] = igual[n][h] = 1;
        }
      } else if (h > n) {
        menorigual[n][h] = menorigual[n][h - 1];
        igual[n][h] = 0;
      } else {
        for (int i = 0; i < n; i++) {
          menorigual[n][h] +=
              menorigual[i][h - 1] * menorigual[n - i - 1][h - 1];
          igual[n][h] += igual[i][h - 1] * (menorigual[n - i - 1][h - 1] -
                                            igual[n - i - 1][h - 1]) +
                         menorigual[i][h - 1] * igual[n - i - 1][h - 1];
        }
      }
      vn[n] += igual[n][h];
    }
  }
  int nn, hh;
  cin >> nn >> hh;
  if (hh == 0)
    cout << vn[nn] << endl;
  else
    cout << vn[nn] - menorigual[nn][hh - 1] << endl;
}
