#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
long long l,r,ans,dp[65][2][2];
long long solve(int idx,bool f1,bool f2)
{
	if (idx<0)
	return 1;
	if (dp[idx][f1][f2]!=-1)
	return dp[idx][f1][f2];
	long long ret=0;
	bool b1=(r&(1LL<<idx)),b2=(l&(1LL<<idx));
	for (int i=0;i<2;i++)
	{
		if (f1 && i==1 && !b1)
		continue;
		for (int j=0;j<=i;j++)
		{
			if (f2 && !j && b2)
			continue;
			ret=(ret+solve(idx-1,(f1 && i==b1),(f2 && j==b2)))%mod;
		}
	}
	return dp[idx][f1][f2]=ret;
}
int main()
{
	cin >> l >> r;
	int j=60;
	for (;!(r&(1LL<<j));j--);
	for (int i=j;;i--)
	{
		memset(dp,-1,sizeof(dp));
		ans=(ans+solve(i-1,(i==j),(l&(1LL<<i))))%mod;
		if (l&(1LL<<i))
		break;
	}
	cout << ans;
}