In one very old text file there was written Great Wisdom. This Wisdom was so Great that nobody could decipher it, even Phong — the oldest among the inhabitants of Mainframe. But still he managed to get some information from there. For example, he managed to learn that User launches games for pleasure — and then terrible Game Cubes fall down on the city, bringing death to those modules, who cannot win the game...
For sure, as guard Bob appeared in Mainframe many modules stopped fearing Game Cubes. Because Bob (as he is alive yet) has never been defeated by User, and he always meddles with Game Cubes, because he is programmed to this.
However, unpleasant situations can happen, when a Game Cube falls down on Lost Angles. Because there lives a nasty virus — Hexadecimal, who is... mmm... very strange. And she likes to play very much. So, willy-nilly, Bob has to play with her first, and then with User.
This time Hexadecimal invented the following entertainment: Bob has to leap over binary search trees with _n_ nodes. We should remind you that a binary search tree is a binary tree, each node has a distinct key, for each node the following is true: the left sub-tree of a node contains only nodes with keys less than the node's key, the right sub-tree of a node contains only nodes with keys greater than the node's key. All the keys are different positive integer numbers from 1 to _n_. Each node of such a tree can have up to two children, or have no children at all (in the case when a node is a leaf).
In Hexadecimal's game all the trees are different, but the height of each is not lower than _h_. In this problem «height» stands for the maximum amount of nodes on the way from the root to the remotest leaf, the root node and the leaf itself included. When Bob leaps over a tree, it disappears. Bob gets the access to a Cube, when there are no trees left. He knows how many trees he will have to leap over in the worst case. And you?
## Input
The input data contains two space-separated positive integer numbers _n_ and _h_ (_n_ ≤ 35, _h_ ≤ _n_).
## Output
Output one number — the answer to the problem. It is guaranteed that it does not exceed 9·1018.
[samples]
在一份非常古老的文本文件中,记载着伟大的智慧。这种智慧如此深奥,以至于即使是主控城中最年长的居民丰格也无法破译。但他仍然从中获取了一些信息。例如,他了解到用户为了娱乐而启动游戏——随后可怕的“游戏立方体”会坠落到城市中,使那些无法赢得游戏的模块死亡...
当然,随着守卫鲍勃出现在主控城,许多模块不再害怕游戏立方体。因为鲍勃(至今还活着)从未被用户击败,而且他总是干预游戏立方体,这是因为他被如此编程的。
然而,当游戏立方体坠落到“失落之角”时,仍可能发生不愉快的情况。因为那里住着一个邪恶的病毒——十六进制,她非常……奇怪。而且她非常喜欢玩游戏。因此,鲍勃不得不先和她玩,然后再和用户玩。
这次,十六进制发明了以下娱乐方式:鲍勃必须跳过具有 #cf_span[n] 个节点的二叉搜索树。我们提醒你,二叉搜索树是一种二叉树,每个节点都有一个不同的键,对于每个节点,以下性质成立:节点的左子树仅包含键小于该节点键的节点,右子树仅包含键大于该节点键的节点。所有键都是从 #cf_span[1] 到 #cf_span[n] 的不同正整数。每个节点最多有两个子节点,或者没有子节点(当该节点为叶子时)。
在十六进制的游戏中,所有树都互不相同,但每棵树的高度都不低于 #cf_span[h]。在此问题中,“高度”指从根节点到最远叶子节点的路径上包含的节点最大数量,包含根节点和叶子节点本身。当鲍勃跳过一棵树时,该树会消失。当所有树都被跳过时,鲍勃就能获得对立方体的访问权限。他知道在最坏情况下他必须跳过多少棵树。你呢?
输入数据包含两个用空格分隔的正整数 #cf_span[n] 和 #cf_span[h](#cf_span[n ≤ 35],#cf_span[h ≤ n])。
输出一个数——本题的答案。保证该答案不超过 #cf_span[9·1018]。
## Input
输入数据包含两个用空格分隔的正整数 #cf_span[n] 和 #cf_span[h](#cf_span[n ≤ 35],#cf_span[h ≤ n])。
## Output
输出一个数——本题的答案。保证该答案不超过 #cf_span[9·1018]。
[samples]
**Given:**
Two positive integers $n$ and $h$ such that $1 \le h \le n \le 35$.
**Definitions:**
1. Let $\mathcal{B}_i$ be the set of structurally unique binary search trees containing $i$ nodes.
2. Let $H(T)$ be the height of a tree $T$, defined as the number of nodes on the longest path from the root to a leaf.
3. Let $N(i, j)$ be the number of binary search trees with $i$ nodes such that $H(T) \le j$.
**Recurrence Relation:**
The value $N(i, j)$ is determined by the following recurrence:
$$
N(i, j) =
\begin{cases}
1 & \text{if } i = 0, \forall j \ge 0 \\
0 & \text{if } i > 0, j = 0 \\
\sum_{k=1}^{i} \left( N(k-1, j-1) \cdot N(i-k, j-1) \right) & \text{if } i > 0, j > 0
\end{cases}
$$
**Objective:**
Calculate the number of binary search trees with $n$ nodes and height $H(T) \ge h$:
$$ \text{Result} = N(n, n) - N(n, h-1) $$