//teja349
#include <bits/stdc++.h>
#include <vector>
#include <set>
#include <map>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <climits>
#include <utility>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <iomanip>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
//setbase - cout << setbase (16); cout << 100 << endl; Prints 64
//setfill - cout << setfill ('x') << setw (5); cout << 77 << endl; prints xxx77
//setprecision - cout << setprecision (14) << f << endl; Prints x.xxxx
//cout.precision(x) cout<<fixed<<val; // prints x digits after decimal in val
using namespace std;
using namespace __gnu_pbds;
#define f(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) f(i,0,n)
#define fd(i,a,b) for(i=a;i>=b;i--)
#define pb push_back
#define mp make_pair
#define vi vector< int >
#define vl vector< ll >
#define ss second
#define ff first
#define ll long long
#define pii pair< int,int >
#define pll pair< ll,ll >
#define sz(a) a.size()
#define inf (1000*1000*1000+5)
#define all(a) a.begin(),a.end()
#define tri pair<int,pii>
#define vii vector<pii>
#define vll vector<pll>
#define viii vector<tri>
#define mod (1000*1000*1000+7)
#define pqueue priority_queue< int >
#define pdqueue priority_queue< int,vi ,greater< int > >
#define flush fflush(stdout)
#define primeDEN 727999983
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
// find_by_order() // order_of_key
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
int cnt[2123456];
int getans(int val){
int ans=0;
while(val){
if(val%16>=10)
ans++;
val/=16;
}
return ans;
}
int main(){
std::ios::sync_with_stdio(false); cin.tie(NULL);
int t;
cin>>t;
cnt[0]=0;
int i;
f(i,1,2123456){
cnt[i]=cnt[i-1]+getans(i);
}
while(t--){
int l,r;
cin>>l>>r;
cout<<cnt[r]-cnt[l-1]<<endl;
}
return 0;
}
Ly90ZWphMzQ5CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4gCi8vc2V0YmFzZSAtIGNvdXQgPDwgc2V0YmFzZSAoMTYpOyBjb3V0IDw8IDEwMCA8PCBlbmRsOyBQcmludHMgNjQKLy9zZXRmaWxsIC0gICBjb3V0IDw8IHNldGZpbGwgKCd4JykgPDwgc2V0dyAoNSk7IGNvdXQgPDwgNzcgPDwgZW5kbDsgcHJpbnRzIHh4eDc3Ci8vc2V0cHJlY2lzaW9uIC0gY291dCA8PCBzZXRwcmVjaXNpb24gKDE0KSA8PCBmIDw8IGVuZGw7IFByaW50cyB4Lnh4eHgKLy9jb3V0LnByZWNpc2lvbih4KSAgY291dDw8Zml4ZWQ8PHZhbDsgIC8vIHByaW50cyB4IGRpZ2l0cyBhZnRlciBkZWNpbWFsIGluIHZhbAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CgojZGVmaW5lIGYoaSxhLGIpIGZvcihpPWE7aTxiO2krKykKI2RlZmluZSByZXAoaSxuKSBmKGksMCxuKQojZGVmaW5lIGZkKGksYSxiKSBmb3IoaT1hO2k+PWI7aS0tKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHZpIHZlY3RvcjwgaW50ID4KI2RlZmluZSB2bCB2ZWN0b3I8IGxsID4KI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBpaSBwYWlyPCBpbnQsaW50ID4KI2RlZmluZSBwbGwgcGFpcjwgbGwsbGwgPgojZGVmaW5lIHN6KGEpIGEuc2l6ZSgpCiNkZWZpbmUgaW5mICgxMDAwKjEwMDAqMTAwMCs1KQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksYS5lbmQoKQojZGVmaW5lIHRyaSBwYWlyPGludCxwaWk+CiNkZWZpbmUgdmlpIHZlY3RvcjxwaWk+CiNkZWZpbmUgdmxsIHZlY3RvcjxwbGw+CiNkZWZpbmUgdmlpaSB2ZWN0b3I8dHJpPgojZGVmaW5lIG1vZCAoMTAwMCoxMDAwKjEwMDArNykKI2RlZmluZSBwcXVldWUgcHJpb3JpdHlfcXVldWU8IGludCA+CiNkZWZpbmUgcGRxdWV1ZSBwcmlvcml0eV9xdWV1ZTwgaW50LHZpICxncmVhdGVyPCBpbnQgPiA+CiNkZWZpbmUgZmx1c2ggZmZsdXNoKHN0ZG91dCkgCiNkZWZpbmUgcHJpbWVERU4gNzI3OTk5OTgzCm10MTk5Mzcgcm5nKGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CgovLyBmaW5kX2J5X29yZGVyKCkgIC8vIG9yZGVyX29mX2tleQp0eXBlZGVmIHRyZWU8CmludCwKbnVsbF90eXBlLApsZXNzPGludD4sCnJiX3RyZWVfdGFnLAp0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+Cm9yZGVyZWRfc2V0OwoKaW50IGNudFsyMTIzNDU2XTsKaW50IGdldGFucyhpbnQgdmFsKXsKCWludCBhbnM9MDsKCXdoaWxlKHZhbCl7CgkJaWYodmFsJTE2Pj0xMCkKCQkJYW5zKys7CgkJdmFsLz0xNjsKCX0KCXJldHVybiBhbnM7Cn0KaW50IG1haW4oKXsKICAgIHN0ZDo6aW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOwogIAlpbnQgdDsKICAJY2luPj50OwogIAljbnRbMF09MDsKICAJaW50IGk7CiAgCWYoaSwxLDIxMjM0NTYpewogIAkJY250W2ldPWNudFtpLTFdK2dldGFucyhpKTsKICAJfQogIAl3aGlsZSh0LS0pewogIAkJaW50IGwscjsKICAJCWNpbj4+bD4+cjsKICAJCWNvdXQ8PGNudFtyXS1jbnRbbC0xXTw8ZW5kbDsKICAJfQogICAgcmV0dXJuIDA7ICAgCn0=