#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
char c;
int t;
queue<string> q;
string s,sa,sb,sc,ns;
map<string,string> mp;
string move_A(string now){
string a="",b="";
for(int i=0;i<4;i++) a+=now[i];
for(int i=4;i<8;i++) b+=now[i];
now=b+a;
return now;
}
string move_B(string now){
char a=' ',b=' ';
a=now[3],b=now[7];
for(int i=7;i>=0;i--) now[i+1]=now[i];
now[0]=a,now[4]=b;
return now;
}
string move_C(string now){
swap(now[1],now[2]);
swap(now[5],now[6]);
swap(now[1],now[6]);
return now;
}
int main(){
while(cin>>c) s+=c;
cout<<s<<endl;
q.push("12345678");
while(!q.empty()){
ns=q.front(),sa=move_A(ns),sb=move_B(ns),sc=move_C(ns),q.pop();
if(!mp[s].empty()){
cout<<mp[s].size()<<endl<<mp[s];
return 0;
}
if(mp[sa].empty()){
q.push(sa);
mp[sa]=mp[ns]+"A";
}
if(mp[sb].empty()){
q.push(sb);
mp[sb]=mp[ns]+"B";
}
if(mp[sc].empty()){
q.push(sc);
mp[sc]=mp[ns]+"C";
}
}
return 0;
}