#include using namespace std; bool flag[2000][2000]; int min1=INT_MAX; int total=-1; int str1[2000][2000]; void solve(int i,int j,int x,int y,int cnt,char str[],int n,int k) { if(i==x&&j==y) { min1=min(min1,cnt); total++; str1[total][0]=k; for(int l=1;l<=k;l++) str1[total][l]=str[l]-'0'; return ; } if(i<0||i>=n||j<0||j>=n) { return ; } if(flag[i][j]==true) return; flag[i][j]=true; str[k+1]='1'; solve(i-2,j-1,x,y,cnt+1,str,n,k+1); str[k+1]='2'; solve(i-2,j+1,x,y,cnt+1,str,n,k+1); str[k+1]='3'; solve(i,j+2,x,y,cnt+1,str,n,k+1); str[k+1]='4'; solve(i+2,j+1,x,y,cnt+1,str,n,k+1); str[k+1]='5'; solve(i+2,j-1,x,y,cnt+1,str,n,k+1); str[k+1]='6'; solve(i,j-2,x,y,cnt+1,str,n,k+1); } int main() { memset(flag,false,sizeof(flag)); int n; cin>>n; int x1,y1,x2,y2; cin>>x1>>y1>>x2>>y2; char str[100000]; solve(x1,y1,x2,y2,0,str,n,0); if(min1!=INT_MAX) { int cnt2=0; cout<