A positive integer is called a 2-3-integer, if it is equal to 2x·3y 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·109).

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.
import java.util.*;
import java.io.*;

public class Main{
	static Scanner sc = new Scanner(System.in);

	static long getl(){
		return sc.nextLong();
	}
	
	static int geti(){
		return sc.nextInt();
	}
	
	static String gets(){
		return sc.next();
	}
	
	static int[] geti(int n){
		int[] arr = new int[n];
		for(int i=0;i<n;i++) arr[i] = sc.nextInt();
		return arr;
	}
	
	static long[] getl(int n){
		long[] arr = new long[n];
		for(int i=0;i<n;i++) arr[i] = sc.nextLong();
		return arr;
	}
   
	static void print(String s){
		System.out.print(s);
	}
	
	static void print(StringBuilder s){
		System.out.print(s.toString());
	}
	
	static void print(long n){
		System.out.print(n);
	}
	
	static void printn(String s){
		System.out.println(s);
	}
	
	static void printn(StringBuilder s){
		System.out.println(s.toString());
	}
	
	static void printn(long n){
		System.out.println(n);
	}
	
	static void print(long[] arr){
		for(int i=0;i<arr.length;i++) System.out.print(arr[i] + " ");
		System.out.println();
	}
	
	static void print(int[] arr){
		for(int i=0;i<arr.length;i++) System.out.print(arr[i] + " ");
		System.out.println();
	}
	
	
    public static void main(String args[]){
       final int MAX = 326;
       final long MOD2 = 2000000007L;
       long a=0,b=0;
       a = getl(); b = getl();
       long[] arr = new long[MAX];
       int  ind = 0;
       
       for(int i=0;i<32;i++){
           for(int j=0;j<32;j++){
               long num1 = (long)Math.pow(2,i);
               long num2 = (long)Math.pow(3,j);
               long num3 = num1*num2;
               if(num1>MOD2 || num2>MOD2 || num3>MOD2) continue;
               arr[ind++] = num3;
           }
       }
       Arrays.sort(arr);
       long res = 0;
       int i = 0;
       while(i<ind && arr[i]<a)i++;
       while(i<ind && arr[i]<=b){
           res++; i++;
       }
       print(res+"\n");
     
    }
}

