#include <iostream>
#include <string>
#include <algorithm>
#include <map>
#include <queue>

using namespace std;

map<string,int> dp;
int direction[4]={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;
		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;
}
