This round has an unusual addition to the rules. For each problem you must use distinct language. Thus, if you have a submission that has passed at least one test or is being tested at the moment, then for this task you can use only this language and can not use it for other tasks. More details can be read by the link. Different implementations of the same language are considered to be the same language (for example, in C++ you can only solve one problem, regardless of the exact chosen compiler).

No tags yet

No tag edit access

A. 2-3-numbers

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputA positive integer is called a 2-3-integer, if it is equal to 2^{x}·3^{y} for some non-negative integers *x* and *y*. In other words, these integers are such integers that only have 2 and 3 among their prime divisors. For example, integers 1, 6, 9, 16 and 108 — are 2-3 integers, while 5, 10, 21 and 120 are not.

Print the number of 2-3-integers on the given segment [*l*, *r*], i. e. the number of sich 2-3-integers *t* that *l* ≤ *t* ≤ *r*.

Input

The only line contains two integers *l* and *r* (1 ≤ *l* ≤ *r* ≤ 2·10^{9}).

Output

Print a single integer the number of 2-3-integers on the segment [*l*, *r*].

Examples

Input

1 10

Output

7

Input

100 200

Output

5

Input

1 2000000000

Output

326

Note

In the first example the 2-3-integers are 1, 2, 3, 4, 6, 8 and 9.

In the second example the 2-3-integers are 108, 128, 144, 162 and 192.

Codeforces (c) Copyright 2010-2018 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Aug/19/2018 07:34:03 (d2).

Desktop version, switch to mobile version.

User lists

Name |
---|