#include <stdio.h>
#include <string.h>
#include<queue>
using namespace std;
int n,l,dx,dy,jx,jy;
int map[305][305];
int dis[305][306];
int dir[8][2]={{-2,1},{-2,-1},{-1,2},{-1,-2},{1,2},{1,-2},{2,1},{2,-1}};
void bfs(int x,int y)
{ dis[x][y]=1;
queue<int>q;
q.push(x);
q.push(y);
while(1){
int xx=q.front();q.pop();
int yy=q.front();q.pop();
if(xx==jx&&yy==jy)
break ;
for(int i=0;i<8;i++)
{int fx=xx+dir[i][0];
int fy=yy+dir[i][1];
if(fx>=0&&fx<l&&fy>=0&&fy<l&&!dis[fx][fy])
{
q.push(fx);
q.push(fy);
dis[fx][fy]=1;
map[fx][fy]=map[xx][yy]+1;
}
//printf("%d %d\n",x,y);
}
}
}
int main()
{
scanf("%d",&n);
while(n--)
{scanf("%d%d%d%d%d",&l,&dx,&dy,&jx,&jy);
memset(map,0,sizeof(map));
memset(dis,0,sizeof(dis));
bfs(dx,dy);
printf("%d\n",map[jx][jy]);
}
}