#include<iostream>
using namespace std;
long mod=1e9+7;
long dp[64][2][2];
long L,R;
int main()
{
	cin>>L>>R;
	long ans=0;
	for(int k=1;k<=62;k++)
	{
		dp[62-k][L<=1L<<k-1][(1L<<k)-1<=R]=1L<<k>L&&R>=1L<<k-1;
	}
	for(int i=0;i<=60;i++)
	{
		int x=L>>60-i&1;
		int y=R>>60-i&1;
		for(int xl=0;xl<2;xl++)for(int yl=0;yl<2;yl++)
		{
			int limx=xl?0:x;
			int limy=yl?1:y;
			for(int yy=0;yy<=limy;yy++)for(int xx=limx;xx<=yy;xx++)
			{
				(dp[i+1][xl||xx>limx][yl||yy<limy]+=dp[i][xl][yl])%=mod;
			}
		}
	}
	for(int i=0;i<4;i++)(ans+=dp[61][i/2][i%2])%=mod;
	cout<<ans<<endl;
}