Another kind of heap is a **binomial heap**. This data structure consists of a set of **binomial trees** with different orders. The binomial tree with order *0* is just a single node. You can construct the tree with order *n* using two binomial trees with order *n-1*. One of them should be attached as the left-most child of the parent of the first tree. It does sound a bit complicated, but the following diagram should remove any confusion:

As already mentioned, the binomial tree with order **0** is only a single node, as shown on the left. The tree with order **1** consists of two trees with order **0** (marked with the dashed border) connected to each other. In the case of the tree with order **2**, two trees with order **1** are used. The second is attached as the left-most child of the parent of the first tree. In the same way, you can configure the binomial trees with the following orders.

However, how can you know how many binomial trees should be located in the binomial heap, as well as how many nodes...