{
ID:tsnoi201
PROG:clocks
LANG:PASCAL
}
program clocks;
const
mov:array[1..9,1..9] of longint=
(
(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,t:longint;
a:array[1..9] of longint;
ans:array[1..30] of longint;
procedure pd;
var g:longint;
begin
for g:=1 to 9 do if a[g]>0 then exit;
for g:=1 to t-1 do write(ans[g],' ');writeln(ans[t]);
close(output);
halt;
end;
procedure dfs(x:longint);
var i,j:longint;
begin
if x>9 then
begin
pd;exit;
end;
dfs(x+1);
for i:=1 to 3 do
begin
for j:=1 to 9 do a[j]:=(a[j]+mov[x,j]) mod 4;
inc(t);ans[t]:=x;
dfs(x+1);
end;
for j:=1 to 9 do a[j]:=(a[j]+mov[x,j]) mod 4;
dec(t,3);
end;
begin
assign(input,'clocks.in');
reset(input);
assign(output,'clocks.out');
rewrite(output);
for i:=1 to 9 do
begin
read(a[i]);
a[i]:=a[i] div 3 mod 4;
end;
t:=0;
dfs(1);
close(output);
end.
ID:tsnoi201
PROG:clocks
LANG:PASCAL
}
program clocks;
const
mov:array[1..9,1..9] of longint=
(
(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,t:longint;
a:array[1..9] of longint;
ans:array[1..30] of longint;
procedure pd;
var g:longint;
begin
for g:=1 to 9 do if a[g]>0 then exit;
for g:=1 to t-1 do write(ans[g],' ');writeln(ans[t]);
close(output);
halt;
end;
procedure dfs(x:longint);
var i,j:longint;
begin
if x>9 then
begin
pd;exit;
end;
dfs(x+1);
for i:=1 to 3 do
begin
for j:=1 to 9 do a[j]:=(a[j]+mov[x,j]) mod 4;
inc(t);ans[t]:=x;
dfs(x+1);
end;
for j:=1 to 9 do a[j]:=(a[j]+mov[x,j]) mod 4;
dec(t,3);
end;
begin
assign(input,'clocks.in');
reset(input);
assign(output,'clocks.out');
rewrite(output);
for i:=1 to 9 do
begin
read(a[i]);
a[i]:=a[i] div 3 mod 4;
end;
t:=0;
dfs(1);
close(output);
end.