#include <iostream>
#include <stdio.h>
using namespace std;

int mem[2500000];
int da[2][4]={{0,1,2,3},{4,5,6,7}},dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};

int cal() {	return da[0][0]*262144+da[0][1]*32768+da[0][2]*4096+da[0][3]*512+da[1][0]*64+da[1][1]*8+da[1][2]; }

void make(int n,int x,int y) {
  int i,c;	 
  mem[cal()]=n;
  for (i=0;i<4;i++) {
	  if (x+dx[i]>-1 && x+dx[i]<4 && y+dy[i]>-1 && y+dy[i]<2) {
		  swap(da[y][x],da[y+dy[i]][x+dx[i]]);
		  c=cal();
		  if (mem[c]>n+1) make(n+1,x+dx[i],y+dy[i]);
		  swap(da[y][x],da[y+dy[i]][x+dx[i]]);
	      }
     }
  return;
}

int main() {
 int i;
 for (i=0;i<2500000;i++) mem[i]=99;
 make(0,0,0);
 while(cin >>da[0][0]>>da[0][1]>>da[0][2]>>da[0][3]>>da[1][0]>>da[1][1]>>da[1][2]>>da[1][3]) cout << mem[cal()] << endl;
 return 0;	
}