Recall the definition of the Fibonacci numbers:


    f1 := 1
    f2 := 2
    fn := fn-1 + fn-2 (n ≥ 3) 

Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a,b].



Input

The input contains several test cases. Each test case consists of two non-negative integer numbers a and b. Input is terminated by a=b=0. Otherwise, a ≤ b ≤ 10^100. The numbers a and b are given with no superfluous leading zeros.


Output

For each test case output on a single line the number of Fibonacci numbers fi with a ≤ fi ≤ b.

Example

Input:

10 100
1234567890 9876543210
0 0


Output:

5
4
import bisect 
def find_lt(a,x):
    #find rightmost value less than or equal to x
    i=bisect.bisect_right(a,x)
    if i:
        return i-1 
    else:
        return -1
def find_ge(a,x):
    #find leftmost item greator than or equal to x
    i=bisect.bisect_left(a,x)
    if i!=len(a):
        return i
    else:
        return -1
fibo=[];
fibo.append(1);
fibo.append(1);
for i in xrange(500):
    fibo.append(fibo[-2]+fibo[-1]);
    #print fibo[len(fibo)-1];
    #print len(str(fibo[len(fibo)-1]));
while True:
    try:
        a,b=map(int,raw_input().split());
        if a==0 and b==0:
           break; 
        left=find_ge(fibo,a);
        right=find_lt(fibo,b);
        #print left,right
        #print fibo[left],fibo[right]
        if left==-1 or right==-1:
            print 0;
        else:
            print right-left+1
    except:
        break;