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

using namespace std;
map<vector<int>, int> m;

void bfs(){
    vector<int> v, prev;
    queue<vector<int> > que;
    for(int i=0;i<8;i++)v.push_back(i);
    m[v] = 1;
    que.push(v);
    while(que.size()){
        int zero_idx;
        vector<int> prev=que.front();que.pop();
        for(int i=0;i<8;i++)if(prev[i]==0)zero_idx=i;
        for(int i=0;i<8;i++)v[i] = prev[i];
        swap(v[zero_idx], v[(zero_idx+4)%8]);
        if(m[v]==0){
            m[v]=m[prev]+1;
            que.push(v);
        }
        swap(v[zero_idx], v[(zero_idx+4)%8]);
        if(zero_idx%4!=0){
            swap(v[zero_idx], v[zero_idx-1]);
            if(m[v]==0){
                m[v]=m[prev]+1;
                que.push(v);
            }
            swap(v[zero_idx], v[zero_idx-1]);
        }
        if(zero_idx%4!=3){
            swap(v[zero_idx], v[zero_idx+1]);
            if(m[v]==0){
                m[v]=m[prev]+1;
                que.push(v);
            }
            swap(v[zero_idx], v[zero_idx+1]);
        }
    }
}

int main(){
    bfs();
    int a;
    vector<int> v;
    while(cin >> a){
        v.clear();
        v.push_back(a);
        for(int i=1;i<8;i++){
            cin >> a;
            v.push_back(a);
        }
        cout << m[v]-1 << endl;
    }
}

