#include<bits/stdc++.h>
using namespace std;
int k;
long long x;
long long y;
long long dx;
long long dy;
long long k3[101];
map<pair<long long,long long>,long long > mp2={{{0,0},1},{{0,1},4},{{0,2},1},{{1,2},2},{{1,1},3},{{1,0},2},{{2,0},1},{{2,1},4},{{2,2},1}};
map<pair<long long ,long long>,long long > mp={{{0,0},0},{{0,1},1},{{0,2},2},{{1,2},3},{{1,1},4},{{1,0},5},{{2,0},6},{{2,1},7},{{2,2},8}};
long long cal(int kk,long long x,long long y){
if(kk==1){
pair <long long ,long long> tmp;
tmp.first=x;
tmp.second=y;
return mp[tmp];
}
long long n=k3[kk];
long long i=x/(n/3);
long long j=y/(n/3);
pair <long long,long long> tmp;
tmp.first=i;
tmp.second=j;
long long l=mp[tmp];
long long t=k3[kk-2];
long long e=mp2[tmp];
long long nx=0;
long long ny=0;
if(e==1){
nx=x%(n/3);
ny=y%(n/3);
}else if(e==2){
nx=x%(n/3);
ny=y%(n/3);
ny=n/3-ny-1;
}else if(e==3){
nx=x%(n/3);
ny=y%(n/3);
nx=n/3-nx-1;
ny=n/3-ny-1;
}else{
nx=x%(n/3);
ny=y%(n/3);
nx=n/3-nx-1;
}
return l*(t*t*8)+cal(kk-1,nx,ny)+(l==0?0:1);
}
int main(){
k3[0]=1;
for(int i=1;i<=100;i++){
k3[i]=k3[i-1]*3;
}
cin>>k>>x>>y>>dx>>dy;
long long d1=cal(k,x,y);
long long d2=cal(k,dx,dy);
long long ans=abs(d1-d2);
cout<<ans<<endl;
return 0;
}