{Pascal ABC.NET}
var a:array[1..18] of integer;
s1,s2,s3:string;
i,max1,max2,max3:integer;
begin
max1:=0;
max2:=0;
max3:=0;
s1:='Обязательная:';
s2:='Короткая:';
s3:='Произвольная:';
for i:=1 to 18 do
readln(a[i]);
for i:=1 to 18 do
begin
if (i<=6) and (a[i]>max1) then max1:=a[i];
if (i>6) and (i<=12) and (a[i]>max2) then max2:=a[i];
if (i>12) and (a[i]>max3) then max3:=a[i];
end;
writeln(s1+max1);
writeln(s2+max2);
writeln(s3+max3);
end.