#include<iostream>
#include<cstdio>
#include<queue>
#include<map>
using namespace std;
string en,c;
int dd[3][8]={{7,6,5,4,3,2,1,0},{3,0,1,2,5,6,7,4},{0,6,1,3,4,2,5,7}};
char tu[4]={'A','B','C'};
queue<pair<string,string> >q;
map<string,int>mp;
string calc(string s,int id){
string ans=s;
for(int i=0;i<8;i++) ans[i]=s[dd[id][i]];
return ans;
}
void bfs(){
q.push(make_pair("12345678",""));
string s,ts,wy,twy;
while(q.size()){
s=q.front().first;
wy=q.front().second;
q.pop();
if(s==en){
cout<<wy.size()<<"\n"<<wy;
break;
}
for(int i=0;i<3;i++){
ts=calc(s,i);
mp[ts]=1;
twy=wy+tu[i];
q.push(make_pair(ts,twy));
}
}
}
signed main(){
for(int i=1;i<9;i++){
cin>>c;
en+=c;
}
bfs();
return 0;
}
TLE后四个点