{ID:hyk68691PROG:clocksLANG:PASCAL}program clocks;const a:array[1..9,1..9] of byte=((1,1,0,1,1,0,0,0,0), (1,1,1,0,0,0,0,0,0), (0,1,1,0,1,1,0,0,0), (1,0,0,1,0,0,1,0,0), (0,1,0,1,1,1,0,1,0), (0,0,1,0,0,1,0,0,1), (0,0,0,1,1,0,1,1,0), (0,0,0,0,0,0,1,1,1), (0,0,0,0,1,1,0,1,1));var i,j,r,h:longint;q:array[1..10000,1..9] of longint;step,be:array[1..10000] of longint;flag:boolean;procedure init; begin assign(input,'clocks.in');reset(input); assign(output,'clocks.out');rewrite(output); end;procedure closeit; begin close(input);close(output); end;procedure print(x1:byte); begin write(step[x1]); if be[i]<>0 then print(be[x1]); end;
begininit;fillchar(q,sizeof(q),0);h:=0;r:=1;for i:=1 to 9 do begin read(q[1,i]); q[1,i]:=(q[1,i]div 3)mod 4; end;inc(r);repeat inc(h); flag:=true; for i:=1 to 9 do if q[h,i]<>0 then flag:=false; if flag then begin print(h);halt;end; for i:=1 to 9 do begin for j:=1 to 9 do q[r,j]:=(q[h,j]+a[i,j])div 3 mod 4; step[r]:=i; be[r]:=h; inc(r); end;until h=r ;closeit;end.
begininit;fillchar(q,sizeof(q),0);h:=0;r:=1;for i:=1 to 9 do begin read(q[1,i]); q[1,i]:=(q[1,i]div 3)mod 4; end;inc(r);repeat inc(h); flag:=true; for i:=1 to 9 do if q[h,i]<>0 then flag:=false; if flag then begin print(h);halt;end; for i:=1 to 9 do begin for j:=1 to 9 do q[r,j]:=(q[h,j]+a[i,j])div 3 mod 4; step[r]:=i; be[r]:=h; inc(r); end;until h=r ;closeit;end.
