#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
map<pair<ll,ll>,bool>mp;
ll m=LLONG_MAX,dc,dr;
ll bfs(ll i,ll j,map<pair<ll,ll>,bool>mp,ll len){
if((i==dr&&j==dc)||len>=m)return min(m,len);
if(i-2>0&&j-1>0&&mp[{i-2,j-1}]==false&&(len+1)<m){mp[{i-2,j-1}]=true;m=bfs(i-2,j-1,mp,len+1);}
if(i-2>0&&j+1<9&&mp[{i-2,j+1}]==false&&(len+1)<m){mp[{i-2,j+1}]=true;m=bfs(i-2,j+1,mp,len+1);}
if(i+2<9&&j-1>0&&mp[{i+2,j-1}]==false&&(len+1)<m){mp[{i+2,j-1}]=true;m=bfs(i+2,j-1,mp,len+1);}
if(i+2<9&&j+1<9&&mp[{i+2,j+1}]==false&&(len+1)<m)
{mp[{i+2,j+1}]=true;m=bfs(i+2,j+1,mp,len+1);}
if(i-1>0&&j-2>0&&mp[{i-1,j-2}]==false&&(len+1)<m){mp[{i-1,j-2}]=true;m=bfs(i-1,j-2,mp,len+1);}
if(i-1>0&&j+2<9&&mp[{i-1,j+2}]==false&&(len+1)<m){mp[{i-1,j+2}]=true;m=bfs(i-1,j+2,mp,len+1);}
if(i+1<9&&j-2>0&&mp[{i+1,j-2}]==false&&(len+1)<m){mp[{i+1,j-2}]=true;m=bfs(i+1,j-2,mp,len+1);}
if(i+1<9&&j+2<9&&mp[{i+1,j+2}]==false&&(len+1)<m)
{mp[{i+1,j+2}]=true;m=bfs(i+1,j+2,mp,len+1);}
return m;
}
int main()
{
ios::sync_with_stdio(false);
ll t;
string src,des;
cin>>t;
while(t--){
cin>>src>>des;
dc=(des[0]-'a')+1,dr=(des[1]-'1')+1;
mp[{src[0]-'a'+1,src[1]-'1'+1}]=true;
m=bfs(src[1]-'1'+1,src[0]-'a'+1,mp,0);
cout<<m<<endl;
m=LLONG_MAX;
mp.clear();
}
return 0;
}