import java.util.Scanner;
public class ZhenTi1 {
public static int data[];
public static int spot;
public static int min=0x7fffffff;
public static int distance(int door,int doorPeo,int direction){
int distance=0;
int left=door;
int right=door;
if(direction==0){
if(data[door]==0){
data[door]=-1;
doorPeo--;
distance++;
if(doorPeo==0)
return distance;
}
left--;
right++;
while(left>=0&&left<spot||right>=0&&right<spot){
if(left>=0&&left<spot&&data[left]==0) {
data[left]=-1;
doorPeo--;
distance=distance+door-left+1;
if(doorPeo==0)
return distance;
}
if(right>=0&&right<spot&&data[right]==0) {
data[right]=-1;
doorPeo--;
distance=distance+right-door+1;
if(doorPeo==0)
return distance;
}
left--;
right++;
}
}else{
if(data[door]==0){
data[door]=-1;
doorPeo--;
distance++;
if(doorPeo==0)
return distance;
}
right++;
left--;
while(left>=0&&left<spot||right>=0&&right<spot){
if(right>=0&&right<spot&&data[right]==0) {
data[right]=-1;
doorPeo--;
distance=distance+right-door+1;
if(doorPeo==0)
return distance;
}
if(left>=0&&left<spot&&data[left]==0) {
data[left]=-1;
doorPeo--;
distance=distance+door-left+1;
if(doorPeo==0)
return distance;
}
right++;
left--;
}
}
return -1;
}
public static void initData(){
for(int i=0;i<spot;i++) data[i]=0;
}
public static int getLong(int doorA,int doorAPeo,int doorB,int doorBPeo,int doorC,int doorCPeo ){
int locMin=0x7fffffff;
int temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,0);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,0);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,0);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
return locMin;
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
spot=sc.nextInt();
data=new int[spot];
int door0=sc.nextInt();
int door0_peo=sc.nextInt();
int door1=sc.nextInt();
int door1_peo=sc.nextInt();
int door2=sc.nextInt();
int door2_peo=sc.nextInt();
int[] doorA={door0,door0,door1,door2,door1,door2};
int[] doorB={door1,door2,door0,door0,door2,door1};
int[] doorC={door2,door1,door2,door1,door0,door0};
int[] doorAPeo={door0_peo,door0_peo,door1_peo,door2_peo,door1_peo,door2_peo};
int[] doorBPeo={door1_peo,door2_peo,door0_peo,door0_peo,door2_peo,door1_peo};
int[] doorCPeo={door2_peo,door1_peo,door2_peo,door1_peo,door0_peo,door0_peo};
int tempres;
for(int i=0;i<6;i++){
tempres=getLong(doorA[i],doorAPeo[i],doorB[i],doorBPeo[i],doorC[i],doorCPeo[i]);
if(tempres<min) min=tempres;
}
System.out.println(min);
}
}
public class ZhenTi1 {
public static int data[];
public static int spot;
public static int min=0x7fffffff;
public static int distance(int door,int doorPeo,int direction){
int distance=0;
int left=door;
int right=door;
if(direction==0){
if(data[door]==0){
data[door]=-1;
doorPeo--;
distance++;
if(doorPeo==0)
return distance;
}
left--;
right++;
while(left>=0&&left<spot||right>=0&&right<spot){
if(left>=0&&left<spot&&data[left]==0) {
data[left]=-1;
doorPeo--;
distance=distance+door-left+1;
if(doorPeo==0)
return distance;
}
if(right>=0&&right<spot&&data[right]==0) {
data[right]=-1;
doorPeo--;
distance=distance+right-door+1;
if(doorPeo==0)
return distance;
}
left--;
right++;
}
}else{
if(data[door]==0){
data[door]=-1;
doorPeo--;
distance++;
if(doorPeo==0)
return distance;
}
right++;
left--;
while(left>=0&&left<spot||right>=0&&right<spot){
if(right>=0&&right<spot&&data[right]==0) {
data[right]=-1;
doorPeo--;
distance=distance+right-door+1;
if(doorPeo==0)
return distance;
}
if(left>=0&&left<spot&&data[left]==0) {
data[left]=-1;
doorPeo--;
distance=distance+door-left+1;
if(doorPeo==0)
return distance;
}
right++;
left--;
}
}
return -1;
}
public static void initData(){
for(int i=0;i<spot;i++) data[i]=0;
}
public static int getLong(int doorA,int doorAPeo,int doorB,int doorBPeo,int doorC,int doorCPeo ){
int locMin=0x7fffffff;
int temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,0);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,0)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,0);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,0)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,0);
if(locMin>temp) locMin=temp;
initData();
temp=distance(doorA-1,doorAPeo,1)+distance(doorB-1,doorBPeo,1)+distance(doorC-1,doorCPeo,1);
if(locMin>temp) locMin=temp;
initData();
return locMin;
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
spot=sc.nextInt();
data=new int[spot];
int door0=sc.nextInt();
int door0_peo=sc.nextInt();
int door1=sc.nextInt();
int door1_peo=sc.nextInt();
int door2=sc.nextInt();
int door2_peo=sc.nextInt();
int[] doorA={door0,door0,door1,door2,door1,door2};
int[] doorB={door1,door2,door0,door0,door2,door1};
int[] doorC={door2,door1,door2,door1,door0,door0};
int[] doorAPeo={door0_peo,door0_peo,door1_peo,door2_peo,door1_peo,door2_peo};
int[] doorBPeo={door1_peo,door2_peo,door0_peo,door0_peo,door2_peo,door1_peo};
int[] doorCPeo={door2_peo,door1_peo,door2_peo,door1_peo,door0_peo,door0_peo};
int tempres;
for(int i=0;i<6;i++){
tempres=getLong(doorA[i],doorAPeo[i],doorB[i],doorBPeo[i],doorC[i],doorCPeo[i]);
if(tempres<min) min=tempres;
}
System.out.println(min);
}
}