import
java.util.ArrayList;
import
java.util.Collections;
import
java.util.List;
class
GFG {
static
void
precompute(List<Long> v)
{
for
(
int
i =
0
; i <
64
; i++)
{
for
(
int
j = i +
1
; j <
64
; j++)
{
for
(
int
k = j +
1
; k <
64
; k++)
{
long
x = (
long
)(1L << i) | (1L << j)
| (1L << k);
long
limit = 1000000000000000000L;
if
(x <= limit && x >
0
) {
v.add(x);
}
}
}
}
Collections.sort(v);
}
static
int
query(
long
l,
long
r, List<Long> v)
{
int
x = Collections.binarySearch(v, l) -
1
;
int
y = Collections.binarySearch(v, r);
return
y - x ;
}
static
void
perform_query(List<
long
[]> arr)
{
List<Long> v =
new
ArrayList<>();
precompute(v);
for
(
long
[] lr : arr)
{
System.out.println(query(lr[
0
], lr[
1
], v));
}
}
public
static
void
main(String[] args)
{
List<
long
[]> arr =
new
ArrayList<>();
arr.add(
new
long
[] {
11
,
19
});
arr.add(
new
long
[] {
14
,
19
});
perform_query(arr);
}
}