#include <bits/stdc++.h>
#define int long long
using namespace std;
void solve()
{
string s;
cin>>s;
assert(s=="N");
int a,b,c,d;
cin>>a>>b>>c>>d;
int p=abs(a-c),q=abs(b-d);
int l=(p+q+2)/3,r=1e9;
int ans=r;
while(l<=r)
{
int mid=(l+r)/2;
int B=mid;
pair<int,int> intervy={0,min(B,2*B-p)};
pair<int,int> intervx={0,min(B,2*B-q)};
if(intervy.first%2!=p%2) intervy.first++;
if(intervy.second%2!=p%2) intervy.second--;
if(intervx.first%2!=q%2) intervx.first++;
if(intervx.second%2!=q%2) intervx.second--;
bool ok=1;
if(intervy.first>intervy.second) ok=0;
if(intervx.first>intervx.second) ok=0;
if(!ok)
{
l=mid+1;
continue;
}
///check possible cu x=0
if(intervx.first==0)
{
///cout<<ans<<' '<<mid<<' '<<B<<' '<<low<<' '<<mid<<' '<<intervx.first<<' '<<intervx.second<<'\n';
if(p<=B && p%2==B%2 && q<=2*B && q%4==((2*B)%4))
{
ans=mid;
r=mid-1;
continue;
}
///cout<<ans<<'\n';
}
///check possible cu y=0
if(intervy.first==0)
{
///cout<<ans<<' '<<mid<<' '<<B<<' '<<low<<' '<<mid<<' '<<intervy.first<<' '<<intervy.second<<'\n';
if(q<=B && q%2==B%2 && p<=2*B && p%4==((2*B)%4))
{
ans=mid;
r=mid-1;
continue;
}
///cout<<ans<<'\n';
}
///nu luam x=0 sau y=0
if(intervx.first==0) intervx.first=2;
if(intervy.first==0) intervy.first=2;
if(intervy.first>intervy.second) ok=0;
if(intervx.first>intervx.second) ok=0;
///cout<<mid<<' '<<intervx.first<<' '<<intervx.second<<'\n';
int low=intervy.first+intervx.first,high=intervx.second+intervy.second;
///cout<<ans<<' '<<mid<<' '<<B<<' '<<low<<' '<<mid<<' '<<intervx.first<<' '<<intervx.second<<'\n';
if(B<low || B>high) ok=0;
if(ok)
{
ans=mid;
r=mid-1;
}
else l=mid+1;
///cout<<ans<<'\n';
}
cout<<ans<<'\n';
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--)
{
solve();
}
return 0;
}