#include<bits/stdc++.h>
using namespace std;
bool prime[10001];
vector<int> adj[10001];
int level[10001];
bool visited[10001];
void soE()
{
memset(prime,true,sizeof(prime));
for(int i=2;i*i<10000;i++)
{
if(prime[i] == true)
{
for(int p=2*i;p<10000;p+=i)
{
prime[p] = false;
}
}
}
}
bool is_connected(int a,int b)
{
string x = to_string(a);
string y = to_string(b);
return (x[0]!=y[0]&&x[1]==y[1]&&x[2]==y[2]&&x[3]==y[3]) || (x[0]==y[0]&&x[1]!=y[1]&&x[2]==y[2]&&x[3]==y[3]) || (x[0]==y[0]&&x[1]==y[1]&&x[2]!=y[2]&&x[3]==y[3]) || (x[0]=y[0]&&x[1]==y[1]&&x[2]==y[2]&&x[3]!=y[3]);
}
void generate_graph(int src,int des)
{
for(int i=src;i<=des;i++)
{
if(prime[i] == true)
{
for(int j=i+1;j<=des;j++)
{
if(prime[j] == true && is_connected(i,j))
{
adj[i].push_back(j);
adj[j].push_back(i);
}
}
}
}
}
int bfs(int src,int dest)
{
queue<int> q;
memset(level,0,sizeof(level));
memset(visited,false,sizeof(visited));
level[src] = 0;
q.push(src);
visited[src] = true;
while(!q.empty())
{
int top = q.front();
q.pop();
for(int i=0;i<adj[top].size();i++)
{
if(visited[adj[top][i]] == false)
{
q.push(adj[top][i]);
visited[adj[top][i]] = true;
level[adj[top][i]] = level[top] + 1;
if(adj[top][i] == dest)
return level[adj[top][i]];
}
}
}
return -1;
}
int main()
{
soE();
int t;
cin >> t;
while(t--)
{
int a,b;
cin >> a >> b;
generate_graph(a,b);
int ans = bfs(a,b);
if(a == b)
cout << "0\n";
else if(ans != -1)
cout << ans << "\n";
else
cout << "Impossible\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBwcmltZVsxMDAwMV07CnZlY3RvcjxpbnQ+IGFkalsxMDAwMV07CmludCBsZXZlbFsxMDAwMV07CmJvb2wgdmlzaXRlZFsxMDAwMV07CnZvaWQgc29FKCkKewogICAgbWVtc2V0KHByaW1lLHRydWUsc2l6ZW9mKHByaW1lKSk7CiAgICBmb3IoaW50IGk9MjtpKmk8MTAwMDA7aSsrKQogICAgewogICAgICAgIGlmKHByaW1lW2ldID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IHA9MippO3A8MTAwMDA7cCs9aSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbWVbcF0gPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpib29sIGlzX2Nvbm5lY3RlZChpbnQgYSxpbnQgYikKewogICAgc3RyaW5nIHggPSB0b19zdHJpbmcoYSk7CiAgICBzdHJpbmcgeSA9IHRvX3N0cmluZyhiKTsKICAgIHJldHVybiAoeFswXSE9eVswXSYmeFsxXT09eVsxXSYmeFsyXT09eVsyXSYmeFszXT09eVszXSkgfHwgKHhbMF09PXlbMF0mJnhbMV0hPXlbMV0mJnhbMl09PXlbMl0mJnhbM109PXlbM10pIHx8ICh4WzBdPT15WzBdJiZ4WzFdPT15WzFdJiZ4WzJdIT15WzJdJiZ4WzNdPT15WzNdKSB8fCAoeFswXT15WzBdJiZ4WzFdPT15WzFdJiZ4WzJdPT15WzJdJiZ4WzNdIT15WzNdKTsKfQp2b2lkIGdlbmVyYXRlX2dyYXBoKGludCBzcmMsaW50IGRlcykKewogICAgZm9yKGludCBpPXNyYztpPD1kZXM7aSsrKQogICAgewogICAgICAgIGlmKHByaW1lW2ldID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGo9aSsxO2o8PWRlcztqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHByaW1lW2pdID09IHRydWUgJiYgaXNfY29ubmVjdGVkKGksaikpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYWRqW2ldLnB1c2hfYmFjayhqKTsKICAgICAgICAgICAgICAgICAgICBhZGpbal0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CmludCBiZnMoaW50IHNyYyxpbnQgZGVzdCkKewogICAgcXVldWU8aW50PiBxOwogICAgbWVtc2V0KGxldmVsLDAsc2l6ZW9mKGxldmVsKSk7CiAgICBtZW1zZXQodmlzaXRlZCxmYWxzZSxzaXplb2YodmlzaXRlZCkpOwogICAgbGV2ZWxbc3JjXSA9IDA7CiAgICBxLnB1c2goc3JjKTsKICAgIHZpc2l0ZWRbc3JjXSA9IHRydWU7CiAgICB3aGlsZSghcS5lbXB0eSgpKQogICAgewogICAgICAgIGludCB0b3AgPSBxLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICBmb3IoaW50IGk9MDtpPGFkalt0b3BdLnNpemUoKTtpKyspCiAgICAgICAgewogICAgICAgICAgICBpZih2aXNpdGVkW2Fkalt0b3BdW2ldXSA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcS5wdXNoKGFkalt0b3BdW2ldKTsKICAgICAgICAgICAgICAgIHZpc2l0ZWRbYWRqW3RvcF1baV1dID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGxldmVsW2Fkalt0b3BdW2ldXSA9IGxldmVsW3RvcF0gKyAxOwogICAgICAgICAgICAgICAgaWYoYWRqW3RvcF1baV0gPT0gZGVzdCkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGV2ZWxbYWRqW3RvcF1baV1dOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIC0xOwp9CmludCBtYWluKCkKewogICAgc29FKCk7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKQogICAgewogICAgICAgIGludCBhLGI7CiAgICAgICAgY2luID4+IGEgPj4gYjsKICAgICAgICBnZW5lcmF0ZV9ncmFwaChhLGIpOwogICAgICAgIGludCBhbnMgPSBiZnMoYSxiKTsKICAgICAgICBpZihhID09IGIpCiAgICAgICAgICAgIGNvdXQgPDwgIjBcbiI7CiAgICAgICAgZWxzZSBpZihhbnMgIT0gLTEpCiAgICAgICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjb3V0IDw8ICJJbXBvc3NpYmxlXG4iOwogICAgfQp9