import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main
(String[] args
) { Scanner src
=new Scanner
(System.
in); BigInteger a,b
;//Declare a,b variable in BigInteger datatype.Because our input size 10^100.So a,b can be 10^100; fib
[1]=BigInteger.
valueOf(1);//fib index one initially declare in 1; fib
[2]=BigInteger.
valueOf(2);//fib index two initially declare in 2; for(int i=3;i<500;i++)//for input value 10^100,the fibo not greater than 500.For that firstly generate all fibo from 1 to 500.
{
fib[i]=fib[i-1].add(fib[i-2]);//Every Time Add previous two fib value;
}
while(src.hasNext())
{
a=src.nextBigInteger();//Taken input by a;
b=src.nextBigInteger();//Taken input by b;
int count=0;//Initially we keep zero in count value;
if(a.
compareTo(BigInteger.
ZERO)==0 && b.
compareTo(BigInteger.
ZERO)==0)//If a and b are zero,Then break; {
break;
}
else if(a.
compareTo(BigInteger.
ZERO)==0 && b.
compareTo(BigInteger.
ONE)==0)//If a is 0 but b is 1 value,That time our answer will be 1; {
//System.out.println("1");
continue;
}
else if(a.
compareTo(BigInteger.
ONE)==0 && b.
compareTo(BigInteger.
ONE)==0)//If a is 1 and b is 1,That time our answer will be 1; {
//System.out.println("1");
continue;
}
for(int i=1;i<500;i++)//If above condition aren't work,Then this statement are execute;
{
if(fib[i].compareTo(a)>=0 &&(fib[i].compareTo(b))<=0)//If f[i]-a>=0 and f[i]-b<=0,Then count are increase;
{
count++;
}
}
System.
out.
println(count
);//Finally We get our expected result; }
}
}
aW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOwppbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7CgpwdWJsaWMgY2xhc3MgTWFpbiB7CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCVNjYW5uZXIgc3JjPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJQmlnSW50ZWdlcltdIGZpYj1uZXcgQmlnSW50ZWdlcls1MDFdOwoJCUJpZ0ludGVnZXIgYSxiOy8vRGVjbGFyZSBhLGIgdmFyaWFibGUgaW4gQmlnSW50ZWdlciBkYXRhdHlwZS5CZWNhdXNlIG91ciBpbnB1dCBzaXplIDEwXjEwMC5TbyBhLGIgY2FuIGJlIDEwXjEwMDsKCQkgZmliWzFdPUJpZ0ludGVnZXIudmFsdWVPZigxKTsvL2ZpYiBpbmRleCBvbmUgaW5pdGlhbGx5IGRlY2xhcmUgaW4gMTsKCQkgZmliWzJdPUJpZ0ludGVnZXIudmFsdWVPZigyKTsvL2ZpYiBpbmRleCB0d28gaW5pdGlhbGx5IGRlY2xhcmUgaW4gMjsKCQkgZm9yKGludCBpPTM7aTw1MDA7aSsrKS8vZm9yIGlucHV0IHZhbHVlIDEwXjEwMCx0aGUgZmlibyBub3QgZ3JlYXRlciB0aGFuIDUwMC5Gb3IgdGhhdCBmaXJzdGx5IGdlbmVyYXRlIGFsbCBmaWJvIGZyb20gMSB0byA1MDAuIAoJCSB7CgkJCSBmaWJbaV09ZmliW2ktMV0uYWRkKGZpYltpLTJdKTsvL0V2ZXJ5IFRpbWUgQWRkIHByZXZpb3VzIHR3byBmaWIgdmFsdWU7CgkJIH0KCQkgd2hpbGUoc3JjLmhhc05leHQoKSkKCQkgewoJCQkgYT1zcmMubmV4dEJpZ0ludGVnZXIoKTsvL1Rha2VuIGlucHV0IGJ5IGE7CgkJCSBiPXNyYy5uZXh0QmlnSW50ZWdlcigpOy8vVGFrZW4gaW5wdXQgYnkgYjsKCQkJIGludCBjb3VudD0wOy8vSW5pdGlhbGx5IHdlIGtlZXAgemVybyBpbiBjb3VudCB2YWx1ZTsKCQkJIGlmKGEuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTyk9PTAgJiYgYi5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKT09MCkvL0lmIGEgYW5kIGIgYXJlIHplcm8sVGhlbiBicmVhazsKCQkJIHsKCQkJCSBicmVhazsKCQkJIH0KCQkJIGVsc2UgaWYoYS5jb21wYXJlVG8oQmlnSW50ZWdlci5aRVJPKT09MCAmJiBiLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLk9ORSk9PTApLy9JZiBhIGlzIDAgYnV0IGIgaXMgMSB2YWx1ZSxUaGF0IHRpbWUgb3VyIGFuc3dlciB3aWxsIGJlIDE7CgkJCSB7CgkJCQkgLy9TeXN0ZW0ub3V0LnByaW50bG4oIjEiKTsKCQkJCSAgU3lzdGVtLm91dC5wcmludGxuKDEpOwoJCQkJIGNvbnRpbnVlOwoJCQkgfQoJCQkgZWxzZSBpZihhLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLk9ORSk9PTAgJiYgYi5jb21wYXJlVG8oQmlnSW50ZWdlci5PTkUpPT0wKS8vSWYgYSBpcyAxIGFuZCBiIGlzIDEsVGhhdCB0aW1lIG91ciBhbnN3ZXIgd2lsbCBiZSAxOwoJCQkgewoJCQkJIC8vU3lzdGVtLm91dC5wcmludGxuKCIxIik7CgkJCQkgIFN5c3RlbS5vdXQucHJpbnRsbigxKTsKCQkJCSBjb250aW51ZTsKCQkJIH0KCQkJIGZvcihpbnQgaT0xO2k8NTAwO2krKykvL0lmIGFib3ZlIGNvbmRpdGlvbiBhcmVuJ3Qgd29yayxUaGVuIHRoaXMgc3RhdGVtZW50IGFyZSBleGVjdXRlOwoJCQkgewoJCQkJIGlmKGZpYltpXS5jb21wYXJlVG8oYSk+PTAgJiYoZmliW2ldLmNvbXBhcmVUbyhiKSk8PTApLy9JZiBmW2ldLWE+PTAgYW5kIGZbaV0tYjw9MCxUaGVuIGNvdW50IGFyZSBpbmNyZWFzZTsKCQkJCSB7CgkJCQkJIGNvdW50Kys7CgkJCQkgfQoJCQkgfQoJCQkgU3lzdGVtLm91dC5wcmludGxuKGNvdW50KTsvL0ZpbmFsbHkgV2UgZ2V0IG91ciBleHBlY3RlZCByZXN1bHQ7CgkJIH0KCgl9Cgp9Cg==