#include<iostream>
#include<string>
#include<map>
#include<queue>
#include<algorithm>
using namespace std;
map<string,int> dp;
int direction[] = {1,-1,4,-4};

void bfs()
{
	queue<string> que;
	que.push("01234567");
	dp["01234567"] = 0;
	while(!que.empty()){
		string now = que.front();
		que.pop();
		int p = 0;// p是'0'的位置  
		for(int j = 0; j < 8; j++){
			if(now[j] == '0'){
				p = j;
				break;
			}
		}
		for(int i = 0; i < 4; i++){
			int n = p + direction[i];
			if(0 <= n && n < 8 && !(p == 3 && i == 0) && !( p ==4 && i == 1)){// 右上角不能再往右了  左下角不能再左了 
				string next = now;
				swap(next[p], next[n]);
				if(dp.find(next) == dp.end()){
					dp[next] = dp[now] + 1;
					que.push(next);
				}
			}
		}
	}
}

int main()
{
	bfs();
	string line;
        while(getline(cin,line)){
		line.erase(remove(line.begin(),line.end(),' '), line.end());
		cout<<dp[line]<<endl;
	}
	return 0;
}
