#include <map>
#include <string>
#include <queue>
#include <utility>
#include <iostream>
using namespace std;

int main(){
    int d[] = {-1,1,-4,4};

    map<string,int> ans;            //答えを入れていく
    ans["01234567"];                //ゴールの状態

    queue< pair<int,string> > que;    //BFS用
    que.push(make_pair(0,"01234567"));  //ゴールの状態を最初に設定

    while(!que.empty()){             //BFS

        pair<int,string> p(que.front());    //この状態での０の位置がintに入っている
        que.pop();                  //queueから取り出し

        int k(ans[p.second]);       //一つ前の状態の手数

        for(int i=0;i<4;i++){

            int n(p.first+d[i]);    //入れ替える際の０の位置

            if(i==0 && n==3)    continue;
            if(i==1 && n==4)    continue;

            if(n>=0 && n<8){
                string tmp(p.second);
                tmp[p.first] = tmp[n];  //入れ替え
                tmp[n] = '0';

                if(ans.find(tmp) == ans.end()){     //ansにない場合か判断
                    ans[tmp] = k + 1;
                    que.push( make_pair(n, tmp ) );
                }
            }
        }
    }

    string s;               //入力用
    char t;
    while(cin >> t){
        s += t;

        for(int i=0;i<7;i++){
            cin >> t;
            s += t;
        }
        cout << ans[s] << endl;
        s.clear();
    }

    return 0;
}
