#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<string>
using namespace std;
map<string,int> dp;
typedef pair<string,int> P;
int dir[4]={-4,4,-1,1};
void bfs()
{
	queue<P> q;
	q.push(P("01234567",0)); 
	dp["01234567"]=0;
	while(!q.empty()) 
	{
		P p=q.front();
		q.pop();
		string a=p.first;
		int cur=p.second;
		for(int i=0;i<4;i++)
		{
			int next=cur+dir[i];
			if(next>=0&&next<8&&!(cur==4&&next==3)&&!(cur==3&&next==4))
			{
				string b=a;
				swap(b[p.second],b[next]);
				if(dp.find(b)==dp.end())
				{	
					dp[b]=dp[a]+1;
					q.push(P(b,next));
				}
			}
		}
		
	}
}
int main()
{
	bfs();
	string l;
	while(getline(cin,l))
	{
		l.erase(remove(l.begin(),l.end(),' '),l.end());
		printf("%d\n",dp[l]);
	}
	return 0;
 } 
 