func_code_string: #include <bits/stdc++.h>   using namespace std;   long long max(long long a, long long b) {     if (a > b) {       return a;     } else {       return b;     }   }   long long min(long long a, long long b) {     if (a < b) {       return a;     } else {       return b;     }   }   vector<string> split(const string& s, char c) {     vector<string> v;     stringstream ss(s);     string x;     while (getline(ss, x, c)) v.emplace_back(x);     return move(v);   }   void err(vector<string>::iterator it) {}   template <typename T, typename... Args>   void err(vector<string>::iterator it, T a, Args... args) {     cerr << it->substr((*it)[0] ==    , it->length()) <<   =   << a <<  ,  ;     err(++it, args...);   }   template <typename T>   struct number_iterator : std::iterator<random_access_iterator_tag, T> {     T v;     number_iterator(T _v) : v(_v) {}     operator T&() { return v; }     T operator*() const { return v; }   };   template <typename T>   struct number_range {     T b, e;     number_range(T b, T e) : b(b), e(e) {}     number_iterator<T> begin() { return b; }     number_iterator<T> end() { return e; }   };   template <typename T>   number_range<T> range(T e) {     return number_range<T>(1, e + 1);   }   template <typename T>   number_range<T> range(T b, T e) {     return number_range<T>(b, e + 1);   }   long long c(long long len, long long b) {     long long base = 1, tot = 0;     for (int i = (1); i <= (len); i++) {       if (i != b) tot += base;       base *= 2;     }     return tot;   }   long long f(long long d) {     if (d <= 1) return 0;     long long res = 0;     for (int i = (1); i <= (60); i++) {       for (int j = (1); j <= (i - 1); j++) {         if (c(i, j) <= d) res++;       }     }     return res;   }   int main() {     long long a, b;     cin >> a >> b;     long long ff = f(b) - f(a - 1);     cout << ff << endl;     return 0;   }   