#include <iostream>
#include <queue>
#include <string>
#include <set>

using namespace std;

class State{
public:
  string str;
  int cnt;
};

int bfs(string str){
  State u, v;
  u.str = str;
  u.cnt = 0;
  queue<State> Q;
  Q.push(u);
  set<string> vis;
  vis.insert(u.str);
  while(!Q.empty()){
    u = Q.front(); Q.pop();
    if(u.str == "01234567") return u.cnt;
    v.cnt = u.cnt + 1;
    for(int i=0;i<8;i++){
      if(u.str[i] != '0') continue;
      if(i!=0 && i!=4){
	v.str = u.str;
	swap(v.str[i], v.str[i-1]);
	if(vis.find(v.str)==vis.end()){
	  vis.insert(v.str);
	  Q.push(v);
	}
      }
      if(i!=7 && i!=3){
	v.str = u.str;
	swap(v.str[i], v.str[i+1]);
	if(vis.find(v.str)==vis.end()){
	  vis.insert(v.str);
	  Q.push(v);
	}
      }
      v.str = u.str;
      if(i<4){
	swap(v.str[i], v.str[i+4]);
	if(vis.find(v.str)==vis.end()){
	  vis.insert(v.str);
	  Q.push(v);
	}
      }else{
	swap(v.str[i], v.str[i-4]);
	if(vis.find(v.str)==vis.end()){
	  vis.insert(v.str);
	  Q.push(v);
	}
      }
    }
  }
  return 0;
}

main(){
  string str;
  while(cin >> str){
    char c;
    for(int i=0;i<7;i++){
      cin >> c;
      str += c;
    }
    cout << bfs(str) << endl;
  }
  return 0;
}