#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> pp;
#define all(a) (a).begin(), (a).end()
#define what_is(x) cerr << #x << " is " << x << '\n';
#define print(a) for (const auto &x : (a)) cout << x << ' '; cout << '\n';
const int N = 2e5 + 7;
const int MOD = 1e9 + 7;
const int INF = 1e15;
array<int, 3> mem[16][2][2] {};
bool vis[16][2][2] {};
int mx = 0;
string num;
array<int, 3> dp(int i, bool st, bool sm) {
if (i == num.size()) return {0, (st ? 1 : 0), 0};
if (vis[i][st][sm]) return mem[i][st][sm];
vis[i][st][sm] = true;
int ret = 0, count = 0, dd = 0;
ret = 0;
if (!st) {
array<int, 3> p = dp(i + 1, st, 1);
ret = p[0];
count = p[1];
dd = p[2];
}
int x = num[i] - '0';
for (int d = 0; d < 10; ++d) {
if (!st and !d) continue;
if (!sm and d > x) break;
// the number in which this value will contribute
if (d == mx) {
array<int, 3> p = dp(i + 1, 1, sm || (d < x));
ret += p[0];
dd += p[2] + p[1];
count += p[1];
} else if (d > mx) {
array<int, 3> p = dp(i + 1, 1, sm || (d < x));
ret += p[0] + p[2];
count += p[1];
dd += p[2];
} else {
array<int, 3> p = dp(i + 1, 1, sm || (d < x));
ret += p[0];
count += p[1];
dd += p[2];
}
}
return mem[i][st][sm] = {ret, count, dd};
}
int count_inv(int n) {
num = to_string(n);
memset(vis, false, sizeof(vis));
return dp(0, 0, 0)[0];
}
void solve() {
int l, r; cin >> l >> r;
int ans = 0;
for (mx = 0; mx < 9; ++mx) {
ans += count_inv(r) - count_inv(l - 1);
}
cout << ans << '\n';
}
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int tt = 1;
cin >> tt;
while (tt--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcHA7CiNkZWZpbmUgYWxsKGEpIChhKS5iZWdpbigpLCAoYSkuZW5kKCkKI2RlZmluZSB3aGF0X2lzKHgpIGNlcnIgPDwgI3ggPDwgIiBpcyAiIDw8IHggPDwgJ1xuJzsKI2RlZmluZSBwcmludChhKSBmb3IgKGNvbnN0IGF1dG8gJnggOiAoYSkpIGNvdXQgPDwgeCA8PCAnICc7IGNvdXQgPDwgJ1xuJzsKY29uc3QgaW50IE4gPSAyZTUgKyA3Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IElORiA9IDFlMTU7CgoKYXJyYXk8aW50LCAzPiBtZW1bMTZdWzJdWzJdIHt9Owpib29sIHZpc1sxNl1bMl1bMl0ge307CmludCBteCA9IDA7CnN0cmluZyBudW07CgphcnJheTxpbnQsIDM+IGRwKGludCBpLCBib29sIHN0LCBib29sIHNtKSB7CiAgICBpZiAoaSA9PSBudW0uc2l6ZSgpKSByZXR1cm4gezAsIChzdCA/IDEgOiAwKSwgMH07CiAgICBpZiAodmlzW2ldW3N0XVtzbV0pIHJldHVybiBtZW1baV1bc3RdW3NtXTsKICAgIHZpc1tpXVtzdF1bc21dID0gdHJ1ZTsKICAgIGludCByZXQgPSAwLCBjb3VudCA9IDAsICBkZCA9IDA7CiAgICByZXQgPSAwOwogICAgaWYgKCFzdCkgewogICAgICAgIGFycmF5PGludCwgMz4gcCA9IGRwKGkgKyAxLCBzdCwgMSk7CiAgICAgICAgcmV0ID0gcFswXTsKICAgICAgICBjb3VudCA9IHBbMV07CiAgICAgICAgZGQgPSBwWzJdOwogICAgfQoKICAgIGludCB4ID0gbnVtW2ldIC0gJzAnOwogICAgZm9yIChpbnQgZCA9IDA7IGQgPCAxMDsgKytkKSB7CiAgICAgICAgaWYgKCFzdCBhbmQgIWQpIGNvbnRpbnVlOwogICAgICAgIGlmICghc20gYW5kIGQgPiB4KSBicmVhazsKCiAgICAgICAgLy8gdGhlIG51bWJlciBpbiB3aGljaCB0aGlzIHZhbHVlIHdpbGwgY29udHJpYnV0ZQogICAgICAgIGlmIChkID09IG14KSB7CiAgICAgICAgICAgIGFycmF5PGludCwgMz4gcCA9IGRwKGkgKyAxLCAxLCBzbSB8fCAoZCA8IHgpKTsKICAgICAgICAgICAgcmV0ICs9IHBbMF07CiAgICAgICAgICAgIGRkICs9IHBbMl0gKyBwWzFdOwogICAgICAgICAgICBjb3VudCArPSBwWzFdOwogICAgICAgIH0gZWxzZSBpZiAoZCA+IG14KSB7CiAgICAgICAgICAgIGFycmF5PGludCwgMz4gcCA9IGRwKGkgKyAxLCAxLCBzbSB8fCAoZCA8IHgpKTsKICAgICAgICAgICAgcmV0ICs9IHBbMF0gKyBwWzJdOwogICAgICAgICAgICBjb3VudCArPSBwWzFdOwogICAgICAgICAgICBkZCArPSBwWzJdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGFycmF5PGludCwgMz4gcCA9IGRwKGkgKyAxLCAxLCBzbSB8fCAoZCA8IHgpKTsKICAgICAgICAgICAgcmV0ICs9IHBbMF07CiAgICAgICAgICAgIGNvdW50ICs9IHBbMV07CiAgICAgICAgICAgIGRkICs9IHBbMl07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIG1lbVtpXVtzdF1bc21dID0ge3JldCwgY291bnQsIGRkfTsKfQppbnQgY291bnRfaW52KGludCBuKSB7CiAgICBudW0gPSB0b19zdHJpbmcobik7CiAgICBtZW1zZXQodmlzLCBmYWxzZSwgc2l6ZW9mKHZpcykpOwogICAgcmV0dXJuIGRwKDAsIDAsIDApWzBdOwp9CnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbCwgcjsgY2luID4+IGwgPj4gcjsKICAgIGludCBhbnMgPSAwOwogICAgZm9yIChteCA9IDA7IG14IDwgOTsgKytteCkgewogICAgICAgIGFucyArPSBjb3VudF9pbnYocikgLSBjb3VudF9pbnYobCAtIDEpOwogICAgfQogICAgY291dCA8PCBhbnMgPDwgJ1xuJzsKfQoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgY291dC50aWUobnVsbHB0cik7CgojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCiAgICBpbnQgdHQgPSAxOwogICAgY2luID4+IHR0OwogICAgd2hpbGUgKHR0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9