#include <bits/stdc++.h>
using namespace std;
string toBinary(unsigned long long int n) {
  string r;
  while (n != 0) {
    r = (n % 2 == 0 ? "0" : "1") + r;
    n /= 2;
  }
  return r;
}
string aylanay(string asalimdan) {
  string str;
  for (int i = 0; i < asalimdan.size(); i++) {
    if (i == 1) {
      str += "0";
    } else {
      str += "1";
    }
  }
  return str;
}
unsigned long long int a, b, hisob;
string a1, b1, str, str2;
int main() {
  std::ios::sync_with_stdio(false);
  cin >> a >> b;
  if (a == 1 && b != 1)
    a++;
  else if (a == 1 && b == 1) {
    cout << 0;
    return 0;
  }
  a1 = toBinary(a);
  b1 = toBinary(b);
  if (a1.size() == b1.size()) {
    str = aylanay(a1);
    for (int i = 0; i <= str.size() - 2; i++) {
      if (str <= b1 && str >= a1) {
        hisob++;
      }
      swap(str[i + 1], str[i + 2]);
    }
  } else {
    str = aylanay(a1);
    for (int i = 0; i <= str.size() - 2; i++) {
      if (str >= a1) {
        hisob++;
      }
      swap(str[i + 1], str[i + 2]);
    }
    str = aylanay(b1);
    for (int i = 0; i <= str.size() - 2; i++) {
      if (str <= b1) {
        hisob++;
      }
      swap(str[i + 1], str[i + 2]);
    }
    if ((b1.size() - a1.size()) > 1) {
      for (int i = a1.size() + 1; i < b1.size(); i++) {
        hisob += (i - 1);
      }
    }
  }
  cout << hisob;
}
