#include using namespace std; using ll = long long; constexpr int DIGIT = 10; constexpr int LIM = 18; vector> power; void prepare() { power = vector(DIGIT + 1, vector(LIM)); for (int base = 1; base <= 10; base++) { power[base][0] = 1; for (int i = 1; i < LIM; i++) { power[base][i] = power[base][i - 1] * base; } } } ll answer(ll n) { ll ans = 9 * n; for (int d = 1; d <= 8; d++) { vector digits(LIM); for (int i = 0; i < LIM; i++) { digits[i] = (n / power[10][i]) % 10; } bool is_upper = false; for (int i = LIM - 1; i >= 0; i--) { if (d < digits[i] || is_upper) { digits[i] = d; is_upper = true; } } ll v = 0; for (int i = 0; i < LIM; i++) { v += digits[i] * power[d + 1][i]; } ans -= v; } return ans; } void solve(){ ll L, R; cin >> L >> R; cout << answer(R) - answer(L - 1) << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; prepare(); while (T--) { solve(); } }