#include<iostream>
int main()
{
unsigned long long powsOf10[20]
{
1,
10,
100,
1'000,
10'000,
100'000,
1'000'000,
10'000'000,
100'000'000,
1'000'000'000,
10'000'000'000,
100'000'000'000,
1'000'000'000'000,
10'000'000'000'000,
100'000'000'000'000,
1'000'000'000'000'000,
10'000'000'000'000'000,
100'000'000'000'000'000,
1'000'000'000'000'000'000,
10'000'000'000'000'000'000
};
unsigned long long ones[19]
{
1,
11,
111,
1'111,
11'111,
111'111,
1'111'111,
11'111'111,
111'111'111,
1'111'111'111,
11'111'111'111,
111'111'111'111,
1'111'111'111'111,
11'111'111'111'111,
111'111'111'111'111,
1'111'111'111'111'111,
11'111'111'111'111'111,
111'111'111'111'111'111,
1'111'111'111'111'111'111
};
int n;
std::cin >> n;
long long a;
long long b;
long long temp1;
long long temp;
int toA = 0;
int toB = 0;
int between;
int omA = 0;
int omB = 0;
bool aMidRange = false;
bool bMidRange = false;
for (int i = 0; i < n; i++)
{
std::cin >> a;
std::cin >> b;
for (int i = 0; i < 20; i++)
{
if(a%powsOf10[i] == a)
{
omA = i - 1;
break;
}
}
for (int i = 0; i < 20; i++)
{
if (b % powsOf10[i] == b)
{
omB = i - 1;
break;
}
}
if (a == 0)
toA = 1;
else
{
toA = 2 << omA;
if (omA == 0)
{
for (int i = 0; i < 2; i++)
{
temp = 0;
for (int j = 0; j < omA; j++)
{
temp += powsOf10[j] * (i >> j & 1);
}
if (a < (powsOf10[omA] + temp))
toA--;
}
}
else
{
for (int i = 0; i < (2 << (omA - 1)); i++)
{
temp = 0;
for (int j = 0; j < omA; j++)
{
temp += powsOf10[j] * (i >> j & 1);
}
if (a < (powsOf10[omA] + temp))
toA--;
}
}
}
if (b == 0)
toB = 1;
else
{
toB = 2 << omB;
if (omB == 0)
{
for (int i = 0; i < 2; i++)
{
temp = 0;
for (int j = 0; j < omB; j++)
{
temp += powsOf10[j] * (i >> j & 1);
}
if (b < (powsOf10[omB] + temp))
toB--;
}
}
else
{
for (int i = 0; i < (2 << (omB-1)); i++)
{
temp = 0;
for (int j = 0; j < omB; j++)
{
temp += powsOf10[j] * (i >> j & 1);
}
if (b < (powsOf10[omB] + temp))
toB--;
}
}
}
aMidRange = ((powsOf10[omA] <= a) && (a <= ones[omA]));
if (a == 0 || a == 1)
aMidRange = true;
bMidRange = ((powsOf10[omB] <= b) && (b <= ones[omB]));
if (b == 0 || b == 1)
bMidRange = true;
if (a == b)
{
if (aMidRange)
between = 1;
else
between = 0;
}
else if (toA == toB)
{
if (!aMidRange && !bMidRange)
between = 0;
else
between = toB - toA + 1;
}
else
{
if (!aMidRange && !bMidRange)
between = toB - toA;
else
between = toB - toA + 1;
}
std::cout << between << '\n';
}
return 0;
}