#include<cstdio>
#include<cstring>
int n;
int l;
int dp[3030][3030];
bool vis[3030][3030];
int sx,sy,ex,ey;
int minn;
int nxtx[8]={2,1,-2,-1,2,1,-2,-1};
int nxty[8]={1,2,-1,-2,-1,-2,1,2};
int min(int a,int b){if(a<b) return a;else return b;}
void dfs(int x,int y,int step)
{
if(x==ex&&y==ey)
{
minn=min(step,minn);
return ;
}
if(step>minn) return ;
if(step>dp[x][y]) return ;
dp[x][y]=step;
vis[x][y]=true;
for(int i=0;i<8;i++)
{
int nx=x+nxtx[i];
int ny=y+nxty[i];
if(nx<0||ny<0||nx>l-1||ny>l-1) continue;
if(vis[nx][ny]) continue;
dfs(nx,ny,step+1);
}
vis[x][y]=false;
}
int main()
{
scanf("%d",&n);
while(n--)
{
scanf("%d",&l);
scanf("%d%d",&sx,&sy);
scanf("%d%d",&ex,&ey);
if(sx==ex&&sy==ey) printf("0\n");
else
{
minn=0x3f3f3f3f;
memset(dp,0x3f3f3f3f,sizeof(dp));
dfs(sx,sy,0);
printf("%d\n",minn);
}
}
return 0;
}
TLE了,0分