#include<bits/stdc++.h>
#define r(i,n) for(int i=0;i<n;i++)
#define mk make_pair
#define f first
#define s second
using namespace std;
unordered_set<string>se;
int dx[]={1,-1,4,-4};
int main(){
  int ww[8];
  while(cin>>ww[0]){
    se.clear();
    string v;
    r(i,7)cin>>ww[i+1];
    r(i,8)v+=ww[i];
    queue<pair<string,int> >q;
    se.insert(v);
    q.push(mk(v,0));
    while(!q.empty()){
      pair<string,int>p=q.front();q.pop();
      string x=p.f;
      r(i,8){
        if(x[i]!=i)break;
        if(i==7){cout<<p.s<<endl;goto L;}
      }
      r(i,8)if(!x[i])r(j,4){
        int y=i+dx[j];
        if(y>=0&&y<8){
          string a;
          a=x;
          swap(a[i],a[y]);
          if(!se.count(a)){
            q.push(mk(a,p.s+1));
            se.insert(a);
          }
        }
      }
    }
    L:;
  }
}