#include <bits/stdc++.h>
using namespace std;
const int MaxN = 5e3 + 5;
const int inf = 0x3f3f3f3f;
int t, n, k;
long long l, r;
vector<long long> vec1, vec2;
map<long long, bool> vis;
int main() {
  cin >> l >> r;
  long long t = 1LL;
  while (t <= r) {
    vec1.push_back(t);
    t *= 2;
  }
  t = 1LL;
  while (t <= r) {
    vec2.push_back(t);
    t *= 3;
  }
  int Size1 = vec1.size(), Size2 = vec2.size();
  int ans = 0;
  for (int i = 0; i < Size1; ++i) {
    for (int j = 0; j < Size2; ++j) {
      long long a = vec1[i], b = vec2[j];
      long long res = a * b;
      if (l <= res && res <= r && !vis[res]) {
        ++ans;
        vis[res] = true;
      }
    }
  }
  cout << ans << endl;
  return 0;
}
