#include <bits/stdc++.h>
using namespace std;
using ll = long long;
vector <int> digit;
int n;
ll dp[20][20][2][2];
ll calc(int id, int cnt, bool tight, bool out) {
if (id == n) return (cnt <= 3 && out);
if (!tight && dp[id][cnt][tight][out] != -1) return dp[id][cnt][tight][out];
ll ans = 0;
int lim = (tight ? digit[id] : 9);
for (int i = 0; i <= lim; ++i) {
if (i == 0) ans += calc(id + 1, cnt, (tight && i == lim), (out | 0));
else ans += calc(id + 1, cnt + 1, (tight && i == lim), 1);
}
if (!tight) dp[id][cnt][tight][out] = ans;
return ans;
}
ll tinh(ll x) {
digit.clear();
while (x) {
digit.push_back(x % 10);
x /= 10;
}
n = (int) digit.size();
reverse(digit.begin(), digit.end());
memset(dp, -1, sizeof dp);
return calc(0, 0, 1, 0);
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t; cin >> t;
while (t--) {
ll a, b; cin >> a >> b;
if (a > 1) cout << tinh(b) - tinh(a - 1) << '\n';
else cout << tinh(b) << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCnZlY3RvciA8aW50PiBkaWdpdDsKaW50IG47CmxsIGRwWzIwXVsyMF1bMl1bMl07CgpsbCBjYWxjKGludCBpZCwgaW50IGNudCwgYm9vbCB0aWdodCwgYm9vbCBvdXQpIHsKICAgIGlmIChpZCA9PSBuKSByZXR1cm4gKGNudCA8PSAzICYmIG91dCk7CiAgICBpZiAoIXRpZ2h0ICYmIGRwW2lkXVtjbnRdW3RpZ2h0XVtvdXRdICE9IC0xKSByZXR1cm4gZHBbaWRdW2NudF1bdGlnaHRdW291dF07CgogICAgbGwgYW5zID0gMDsKICAgIGludCBsaW0gPSAodGlnaHQgPyBkaWdpdFtpZF0gOiA5KTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBsaW07ICsraSkgewogICAgICAgIGlmIChpID09IDApIGFucyArPSBjYWxjKGlkICsgMSwgY250LCAodGlnaHQgJiYgaSA9PSBsaW0pLCAob3V0IHwgMCkpOwogICAgICAgIGVsc2UgYW5zICs9IGNhbGMoaWQgKyAxLCBjbnQgKyAxLCAodGlnaHQgJiYgaSA9PSBsaW0pLCAxKTsKICAgIH0KCiAgICBpZiAoIXRpZ2h0KSBkcFtpZF1bY250XVt0aWdodF1bb3V0XSA9IGFuczsKICAgIHJldHVybiBhbnM7Cn0KCmxsIHRpbmgobGwgeCkgewogICAgZGlnaXQuY2xlYXIoKTsKICAgIHdoaWxlICh4KSB7CiAgICAgICAgZGlnaXQucHVzaF9iYWNrKHggJSAxMCk7CiAgICAgICAgeCAvPSAxMDsKICAgIH0KCiAgICBuID0gKGludCkgZGlnaXQuc2l6ZSgpOwogICAgcmV2ZXJzZShkaWdpdC5iZWdpbigpLCBkaWdpdC5lbmQoKSk7CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgcmV0dXJuIGNhbGMoMCwgMCwgMSwgMCk7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgCgogICAgaW50IHQ7IGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGxsIGEsIGI7IGNpbiA+PiBhID4+IGI7CiAgICAgICAgaWYgKGEgPiAxKSBjb3V0IDw8IHRpbmgoYikgLSB0aW5oKGEgLSAxKSA8PCAnXG4nOwogICAgICAgIGVsc2UgY291dCA8PCB0aW5oKGIpIDw8ICdcbic7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K