Stairs
Contest: Codeforces Round 671 (Div. 2)
Difficulty rating: 1200
Tags: brute force, constructive algorithms, greedy, implementation, math

Jett is tired after destroying the town and she wants to have a rest. She likes high places, that's why for having a rest she wants to get high and she decided to craft staircases.

A staircase is a squared figure that consists of square cells. Each staircase consists of an arbitrary number of stairs. If a staircase has $$$n$$$ stairs, then it is made of $$$n$$$ columns, the first column is $$$1$$$ cell high, the second column is $$$2$$$ cells high, $$$\ldots$$$, the $$$n$$$-th column if $$$n$$$ cells high. The lowest cells of all stairs must be in the same row.

A staircase with $$$n$$$ stairs is called nice, if it may be covered by $$$n$$$ disjoint squares made of cells. All squares should fully consist of cells of a staircase.

This is how a nice covered staircase with $$$7$$$ stairs looks like:

Find out the maximal number of different nice staircases, that can be built, using no more than $$$x$$$ cells, in total. No cell can be used more than once.

Input format:
The first line contains a single integer $$$t$$$ $$$(1 \le t \le 1000)$$$  — the number of test cases.

The description of each test case contains a single integer $$$x$$$ $$$(1 \le x \le 10^{18})$$$  — the number of cells for building staircases.

Output format:
For each test case output a single integer  — the number of different nice staircases, that can be built, using not more than $$$x$$$ cells, in total.

Constraints:
Time limit: 1.0 s
Memory limit: 256.0 MB

Note:
In the first test case, it is possible to build only one staircase, that consists of $$$1$$$ stair. It's nice. That's why the answer is $$$1$$$.

In the second test case, it is possible to build two different nice staircases: one consists of $$$1$$$ stair, and another consists of $$$3$$$ stairs. This will cost $$$7$$$ cells. In this case, there is one cell left, but it is not possible to use it for building any nice staircases, that have not been built yet. That's why the answer is $$$2$$$.

In the third test case, it is possible to build only one of two nice staircases: with $$$1$$$ stair or with $$$3$$$ stairs. In the first case, there will be $$$5$$$ cells left, that may be used only to build a staircase with $$$2$$$ stairs. This staircase is not nice, and Jett only builds nice staircases. That's why in this case the answer is $$$1$$$. If Jett builds a staircase with $$$3$$$ stairs, then there are no more cells left, so the answer is $$$1$$$ again.

Example input:
4
1
8
6
1000000000000000000

Example output:
1
2
1
30

Editorial:
Let's prove, that the minimal amount of squares needed to cover the staircase is not less than $$$n$$$, where $$$n$$$ is the height of a staircase. To highest cell of each stair is the top left cell of some square. That's why we need at least $$$n$$$ squares. You need exactly $$$n$$$ squares if and only if the top left cell of each stair is a top left cell of some sqaure.
Let's consider a square that covers the lowest cell in the last stair. Its top left corner should contain the highest cell with index $$$\frac{n + 1}{2}$$$ for odd $$$n$$$. Then the staircase is divided into 2 staircases, each $$$\frac{n - 1}{2}$$$ stairs high. These staircases should be nice, too. It means that nice staircases are $$$2^k - 1$$$ stairs high, where $$$k \ge 1$$$. To maximize the amount of different staircases we should create staircases greedily.
If $$$n$$$ is even, then we can consider a square that will have the lowest cell of the last stair. The top left corner of this square may not contain any top cells of a staircase, that's why you will need more than $$$n$$$ squares. This means that a staircase with an even height may not be nice.