#include<bits/stdc++.h>
using namespace std;
bool prime[10000001];
vector<int> adj[10001];
int level[10001];
bool visited[10001];
void soE()
{
memset(prime,true,sizeof(prime));
for(int i=2;i*i<=9999;i++)
{
if(prime[i] == true)
{
for(int p=i*i;p<=9999;p+=i)
prime[p] = false;
}
}
}
/*bool is_connected(int a,int b)
{
string x = to_string(a);
string y = to_string(b);
if(x.length() == 1)
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()
{
for(int i=1000;i<=9999;i++)
{
if(prime[i] == true)
{
for(int j=1000;j<=9999;j++)
{
if(prime[j] == true)
{
vector <int> temp;
int val=i,val1=j;
while(val>0)
{
int x=val%10;
int y=val1%10;
temp.push_back(abs(x-y));
val/=10;
val1/=10;
}
sort(temp.begin(),temp.end());
if(temp[0]==0&&temp[1]==0&&temp[2]==0&&temp[3]!=0)
{
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();
generate_graph();
int t;
cin >> t;
while(t--)
{
int a,b;
cin >> a >> b;
int ans = bfs(a,b);
if(a == b)
cout << "0\n";
else if(ans != -1)
cout << ans << "\n";
else
cout << "Impossible\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBwcmltZVsxMDAwMDAwMV07CnZlY3RvcjxpbnQ+IGFkalsxMDAwMV07CmludCBsZXZlbFsxMDAwMV07CmJvb2wgdmlzaXRlZFsxMDAwMV07CnZvaWQgc29FKCkKewogICAgbWVtc2V0KHByaW1lLHRydWUsc2l6ZW9mKHByaW1lKSk7CiAgICBmb3IoaW50IGk9MjtpKmk8PTk5OTk7aSsrKQogICAgewogICAgICAgIGlmKHByaW1lW2ldID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IHA9aSppO3A8PTk5OTk7cCs9aSkKICAgICAgICAgICAgICAgIHByaW1lW3BdID0gZmFsc2U7CiAgICAgICAgfQogICAgfQp9Ci8qYm9vbCBpc19jb25uZWN0ZWQoaW50IGEsaW50IGIpCnsKICAgIHN0cmluZyB4ID0gdG9fc3RyaW5nKGEpOwogICAgc3RyaW5nIHkgPSB0b19zdHJpbmcoYik7CiAgICBpZih4Lmxlbmd0aCgpID09IDEpCiAgICByZXR1cm4gKHhbMF0hPXlbMF0mJnhbMV09PXlbMV0mJnhbMl09PXlbMl0mJnhbM109PXlbM10pIHx8ICh4WzBdPT15WzBdJiZ4WzFdIT15WzFdJiZ4WzJdPT15WzJdJiZ4WzNdPT15WzNdKSB8fCAoeFswXT09eVswXSYmeFsxXT09eVsxXSYmeFsyXSE9eVsyXSYmeFszXT09eVszXSkgfHwgKHhbMF09eVswXSYmeFsxXT09eVsxXSYmeFsyXT09eVsyXSYmeFszXSE9eVszXSk7Cn0qLwp2b2lkIGdlbmVyYXRlX2dyYXBoKCkKewogICAgZm9yKGludCBpPTEwMDA7aTw9OTk5OTtpKyspCiAgICB7CiAgICAgICAgaWYocHJpbWVbaV0gPT0gdHJ1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpbnQgaj0xMDAwO2o8PTk5OTk7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihwcmltZVtqXSA9PSB0cnVlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgPGludD4gdGVtcDsKICAgICAgICAgICAgICAgICAgICAgaW50IHZhbD1pLHZhbDE9ajsKICAgICAgICAgICAgICAgICAgICAgd2hpbGUodmFsPjApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpbnQgeD12YWwlMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCB5PXZhbDElMTA7CiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAucHVzaF9iYWNrKGFicyh4LXkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsLz0xMDsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsMS89MTA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHNvcnQodGVtcC5iZWdpbigpLHRlbXAuZW5kKCkpOwogICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbMF09PTAmJnRlbXBbMV09PTAmJnRlbXBbMl09PTAmJnRlbXBbM10hPTApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhZGpbaV0ucHVzaF9iYWNrKGopOwogICAgICAgICAgICAgICAgICAgICAgICBhZGpbal0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgYmZzKGludCBzcmMsaW50IGRlc3QpCnsKICAgIHF1ZXVlPGludD4gcTsKICAgIG1lbXNldChsZXZlbCwwLHNpemVvZihsZXZlbCkpOwogICAgbWVtc2V0KHZpc2l0ZWQsZmFsc2Usc2l6ZW9mKHZpc2l0ZWQpKTsKICAgIGxldmVsW3NyY10gPSAwOwogICAgcS5wdXNoKHNyYyk7CiAgICB2aXNpdGVkW3NyY10gPSB0cnVlOwogICAgd2hpbGUoIXEuZW1wdHkoKSkKICAgIHsKICAgICAgICBpbnQgdG9wID0gcS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgZm9yKGludCBpPTA7aTxhZGpbdG9wXS5zaXplKCk7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYodmlzaXRlZFthZGpbdG9wXVtpXV0gPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHEucHVzaChhZGpbdG9wXVtpXSk7CiAgICAgICAgICAgICAgICB2aXNpdGVkW2Fkalt0b3BdW2ldXSA9IHRydWU7CiAgICAgICAgICAgICAgICBsZXZlbFthZGpbdG9wXVtpXV0gPSBsZXZlbFt0b3BdICsgMTsKICAgICAgICAgICAgICAgIGlmKGFkalt0b3BdW2ldID09IGRlc3QpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxldmVsW2Fkalt0b3BdW2ldXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAtMTsKfQppbnQgbWFpbigpCnsKICAgIHNvRSgpOwogICAgZ2VuZXJhdGVfZ3JhcGgoKTsKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgaW50IGEsYjsKICAgICAgICBjaW4gPj4gYSA+PiBiOwogICAgICAgIGludCBhbnMgPSBiZnMoYSxiKTsKICAgICAgICBpZihhID09IGIpCiAgICAgICAgICAgIGNvdXQgPDwgIjBcbiI7CiAgICAgICAgZWxzZSBpZihhbnMgIT0gLTEpCiAgICAgICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjb3V0IDw8ICJJbXBvc3NpYmxlXG4iOwogICAgfQp9