Problem:
Score : 300 points

Problem Statement

As a token of his gratitude, Takahashi has decided to give his mother an integer sequence.
The sequence A needs to satisfy the conditions below:

A consists of integers between X and Y (inclusive).

For each 1\leq i \leq |A|-1, A_{i+1} is a multiple of A_i and strictly greater than A_i.

Find the maximum possible length of the sequence.

Constraints

1 \leq X \leq Y \leq 10^{18}

All input values are integers.

Input

Input is given from Standard Input in the following format:

X Y

Output

Print the maximum possible length of the sequence.

Sample Input 1

3 20

Sample Output 1

3

The sequence 3,6,18 satisfies the conditions.

Sample Input 2

25 100

Sample Output 2

3

Sample Input 3

314159265 358979323846264338

Sample Output 3

31

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <cstdlib>
#include <climits>
#include <iostream>
#include <cstdint>
#include <vector>
#include <string>
#include <complex>
#include <bitset>
#include <queue>
#include <stack>
#include <utility>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>

#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/multi_array.hpp>

using namespace std;

#if 0
// memo
abs()

start_with(str, "hoge");
ends_with(str, "hoge");

std::sort(d.begin(), d.end());
d.erase(std::unique(d.begin(), d.end()), d.end());
#endif

using namespace boost;
using namespace boost::algorithm;

/**

   @retuen msb pos + 1,
   @retval 0 not found
 */
template<size_t SZ>
size_t msb(const std::bitset<SZ>& s) {
    for (size_t i = SZ; i != 0; --i) {
        if (s[i-1]) {
            return i;
        }
    }
    return 0;
}


static inline bool isOdd(int v)
{
    return v & 0x01;
}

int main()
{
    uint64_t X, Y;

    std::cin >> X >> Y;

    uint64_t v = X;
    uint64_t count = 1;
    for (;;) {
        auto vv = v*2;
        if (vv > Y) {
            break;
        }
        count++;
        v = vv;
    }

    std::cout << count << std::endl;
    return 0;
}