#include<bits/stdc++.h>
using namespace std;
string f,c;
struct node {
int t,biao;
string ss;
};
int vis[1000000][7];
int found(string s) {
int sum;
sum=(s[0]-'0')*100000+(s[1]-'0')*10000+(s[2]-'0')*1000+(s[3]-'0')*100+(s[4]-'0')*10+(s[5]-'0');
return sum;
}
bool operator <(const node x,const node y) {
return x.t<y.t;
}
priority_queue<node> q;
void bfs(string s) {
node f;
memset(vis,0x3f,sizeof(vis));
f.ss=s,f.biao=0;
f.t=0;
q.push(f);
vis[found(s)][0]=0;
while(!q.empty()) {
node h=q.top();
//cout<<h.ss<<" "<<h.biao<<" "<<h.t<<endl;
q.pop();
if(h.ss==c) {
cout<<1;
cout<<h.t;
return;
}
for(int i=1; i<=6; i++) {
//cout<<i;
if(i==1) {
if(h.biao==0) {
continue;
}
swap(h.ss[h.biao],h.ss[0]);
if(vis[found(h.ss)][h.biao]<=h.t+1) {
continue;
}
vis[found(h.ss)][h.biao]=h.t+1;
node u;
u.ss=h.ss,u.t=h.t+1,u.biao=h.biao;
q.push(u);
} else if(i==2) {
if(h.biao==5) {
continue;
}
swap(h.ss[h.biao],h.ss[5]);
if(vis[found(h.ss)][h.biao]<=h.t+1) {
continue;
}
vis[found(h.ss)][h.biao]=h.t+1;
node u;
u.ss=h.ss,u.t=h.t+1,u.biao=h.biao;
q.push(u);
} else if(i==3) {
//cout<<1;
if(h.ss[h.biao]-'0'==9) {
continue;
}
//cout<<1;
int k=int(h.ss[h.biao]);
k+=1;
h.ss[h.biao]=char(k);
//cout<<endl<<h.ss;
if(vis[found(h.ss)][h.biao]<=h.t+1) {
continue;
}
//cout<<1;
vis[found(h.ss)][h.biao]=h.t+1;
node u;
u.ss=h.ss,u.t=h.t+1,u.biao=h.biao;
q.push(u);
} else if(i==4) {
if(h.ss[h.biao]-'0'==0) {
continue;
}
int k=int(h.ss[h.biao]);
k-=1;
h.ss[h.biao]=char(k);
if(vis[found(h.ss)][h.biao]<=h.t+1) {
continue;
}
vis[found(h.ss)][h.biao]=h.t+1;
node u;
u.ss=h.ss,u.t=h.t+1,u.biao=h.biao;
q.push(u);
} else if(i==5) {
if(h.biao==0) {
continue;
}
h.biao-=1;
if(vis[found(h.ss)][h.biao]<=h.t+1) {
continue;
}
vis[found(h.ss)][h.biao]=h.t+1;
node u;
u.ss=h.ss,u.t=h.t+1,u.biao=h.biao;
q.push(u);
} else if(i==6) {
if(h.biao==5) {
continue;
}
cout<<h.ss<<" "<<h.biao<<" "<<h.t<<endl;
h.biao+=1;
if(vis[found(h.ss)][h.biao]<=h.t+1) {
continue;
}
vis[found(h.ss)][h.biao]=h.t+1;
//cout<<h.ss<<" "<<h.biao<<" "<<h.t<<endl;
node u;
u.ss=h.ss,u.t=h.t+1,u.biao=h.biao;
q.push(u);
}
}
}
}
int main() {
cin>>f>>c;
bfs(f);
return 0;
}