// 2013/11/05 Tazoe

#include <iostream>
#include <queue>
using namespace std;

struct state{
	int p[8];
	int t;
};

int main()
{
	while(true){
		int P[8];

		cin >> P[0];

		if(cin.eof())
			break;

		for(int i=1; i<8; i++){
			cin >> P[i];
		}
/*
		for(int i=0; i<8; i++){
			cout << P[i] << ' ';
		}
		cout << endl;
*/

		struct state s;
		for(int i=0; i<8; i++){
			s.p[i] = P[i];
		}
		s.t = 0;

		queue<struct state> q;
		q.push(s);

		bool memo[8][8][8][8][8][8][8];
		for(int i0=0; i0<8; i0++){
		for(int i1=0; i1<8; i1++){
		for(int i2=0; i2<8; i2++){
		for(int i3=0; i3<8; i3++){
		for(int i4=0; i4<8; i4++){
		for(int i5=0; i5<8; i5++){
		for(int i6=0; i6<8; i6++){
			memo[i0][i1][i2][i3][i4][i5][i6] = false;
		}
		}
		}
		}
		}
		}
		}
		memo[s.p[0]][s.p[1]][s.p[2]][s.p[3]][s.p[4]][s.p[5]][s.p[6]] = true;

		while(true){
			if(q.empty())
				break;

			s = q.front();
//		cout << s.p[0] << s.p[1] << s.p[2] << s.p[3] << s.p[4] << s.p[5] << s.p[6] << s.p[7] << endl;
//		cout << s.t << endl;

			if(s.p[0]==0 && s.p[1]==1 && s.p[2]==2 && s.p[3]==3 && s.p[4]==4 && s.p[5]==5 && s.p[6]==6 && s.p[7]==7){
				cout << s.t << endl;
				break;
			}

			for(int i=0; i<8; i++){
				if(s.p[i]==0){
					struct state t;

					if(0<=i && i<=3){
						for(int j=0; j<8; j++){
							t.p[j] = s.p[j];
						}
						t.p[i] = t.p[i+4];
						t.p[i+4] = 0;
						t.t = s.t+1;

						if(!memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]]){
							q.push(t);
							memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]] = true;
						}
					}

					if(4<=i && i<=7){
						for(int j=0; j<8; j++){
							t.p[j] = s.p[j];
						}
						t.p[i] = t.p[i-4];
						t.p[i-4] = 0;
						t.t = s.t+1;

						if(!memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]]){
							q.push(t);
							memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]] = true;
						}
					}

					if(i!=0 && i!=4){
						for(int j=0; j<8; j++){
							t.p[j] = s.p[j];
						}
						t.p[i] = t.p[i-1];
						t.p[i-1] = 0;
						t.t = s.t+1;

						if(!memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]]){
							q.push(t);
							memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]] = true;
						}
					}

					if(i!=3 && i!=7){
						for(int j=0; j<8; j++){
							t.p[j] = s.p[j];
						}
						t.p[i] = t.p[i+1];
						t.p[i+1] = 0;
						t.t = s.t+1;

						if(!memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]]){
							q.push(t);
							memo[t.p[0]][t.p[1]][t.p[2]][t.p[3]][t.p[4]][t.p[5]][t.p[6]] = true;
						}
					}

					break;
				}
			}

			q.pop();
		}
	}

	return 0;
}