#include<bits/stdc++.h>
#define For(i,a,b) for(int i=a;i<=b;i++)
#define Ford(i,a,b) for(int i=a;i>=b;i--)
#define ii pair<int,int>
#define sc second
#define fs first
#define N 1000005
#define ll long long
using namespace std;
bool p[N];
ll s1[N], s2[N];
int n;
void sieve()
{
p[0] = p[1] = 1;
int mx = 1e6;
For (i, 2, sqrt(mx))
if (!p[i])
for(int j = i * i; j <= mx;j += i)
p[j] = 1;
}
string str(int n)
{
stringstream s;
s<<n;
return s.str();
}
int val(string s)
{
int n;
stringstream (s)>>n;
return n;
}
int dns(int n)
{
string s=str(n);
reverse(s.begin(),s.end());
return val(s);
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
//freopen("twins.inp", "r", stdin);
//freopen("twins.out", "w", stdout);
sieve();
For(i, 1, 1e6)
{
s1[i] = s1[i-1] + (p[i] ? 0 : i);
s2[i] = s2[i-1] + (!p[i] && !p[dns(i)] && i!=dns(i) ? 1 : 0);
}
cin>>n;
For(i,1,n){
int l, r;
cin >> l >> r;
cout << s1[r] - s1[l-1] << ' ' << s2[r] - s2[l-1] <<'\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBGb3IoaSxhLGIpIGZvcihpbnQgaT1hO2k8PWI7aSsrKQojZGVmaW5lIEZvcmQoaSxhLGIpIGZvcihpbnQgaT1hO2k+PWI7aS0tKQojZGVmaW5lIGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBmcyBmaXJzdAojZGVmaW5lIE4gMTAwMDAwNQojZGVmaW5lIGxsIGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpib29sIHBbTl07CmxsIHMxW05dLCBzMltOXTsKaW50IG47CnZvaWQgc2lldmUoKQp7CiAgICBwWzBdID0gcFsxXSA9IDE7CiAgICBpbnQgbXggPSAxZTY7CiAgICBGb3IgKGksIDIsIHNxcnQobXgpKQogICAgaWYgKCFwW2ldKQogICAgICAgIGZvcihpbnQgaiA9IGkgKiBpOyBqIDw9IG14O2ogKz0gaSkKICAgICAgICAgIHBbal0gPSAxOwp9CnN0cmluZyBzdHIoaW50IG4pCnsKICAgc3RyaW5nc3RyZWFtIHM7CiAgIHM8PG47CiAgIHJldHVybiBzLnN0cigpOwp9CmludCB2YWwoc3RyaW5nIHMpCnsKICAgaW50IG47CiAgIHN0cmluZ3N0cmVhbSAocyk+Pm47CiAgIHJldHVybiBuOwp9CmludCBkbnMoaW50IG4pCnsKICAgc3RyaW5nIHM9c3RyKG4pOwogICByZXZlcnNlKHMuYmVnaW4oKSxzLmVuZCgpKTsKICAgcmV0dXJuIHZhbChzKTsKfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZShOVUxMKTtjb3V0LnRpZShOVUxMKTsKICAgIC8vZnJlb3BlbigidHdpbnMuaW5wIiwgInIiLCBzdGRpbik7CiAgICAvL2ZyZW9wZW4oInR3aW5zLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIHNpZXZlKCk7CiAgICBGb3IoaSwgMSwgMWU2KQogICAgewogICAgICAgIHMxW2ldID0gczFbaS0xXSArIChwW2ldID8gMCA6IGkpOwogICAgICAgIHMyW2ldID0gczJbaS0xXSArICghcFtpXSAmJiAhcFtkbnMoaSldICYmIGkhPWRucyhpKSA/IDEgOiAwKTsKICAgIH0KICAgIGNpbj4+bjsKICAgIEZvcihpLDEsbil7CiAgICAgICAgaW50IGwsIHI7CiAgICAgICAgY2luID4+IGwgPj4gcjsKICAgICAgICBjb3V0IDw8IHMxW3JdIC0gczFbbC0xXSA8PCAnICcgPDwgczJbcl0gLSBzMltsLTFdIDw8J1xuJzsKICAgIH0KICAgIHJldHVybiAwOwp9