#include <iostream>
#include <queue>
#include <string>
#include <map>
#include <algorithm>
#include <stdio.h>

using namespace std;

int dd[] = {1, -1, 4, -4};
map<string, int> done;

void dfs(){
    //その時のカードの状態をqueueに突っ込む
    queue<string> que;
    
    que.push("01234567");
    while(!que.empty()){
        string q = que.front(); que.pop();
        int x0 = q.find("0");
        for(int i=0; i<4; i++){
            string t = q;
            int nx = x0+dd[i];
            if(nx<0 || 7<nx || (x0==3&&i==0) || (x0==4&&i==1))
                continue;
            t[x0] = t[nx];
            t[nx] = '0';
            if(done.count(t))
                continue;
            done[t] = done[q] + 1;
            que.push(t);
        }
    }
}

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