var
mat : array [1..6, 1..6] of longint =
( (-23, 11, -17, 8, -10, -10),
(17, -25, -58, -32, -45, -65),
(-20, -58, 28, -30, 4, -21),
(-10, -47, -31, 100, -10, 25),
(-11, -48, 29, -17, 2, -14),
(14, -70, 80, 20, 41, -41) );
inf : longint;
dp : array [1..6, 1..6] of longint;
i, j : longint;
function max(a, b: longint): longint;
begin
if a > b then max := a
else max := b;
end;
function min(a, b: longint): longint;
begin
if a < b then min := a
else min := b;
end;
function f(y, x: longint): longint; // minimum hp dari posisi x, y sampai 6,6
begin
if (x > 6) or (y > 6) then begin // out of bound
f := inf;
end else if dp[y][x] <> -1 then begin
f := dp[y][x];
end else begin
if (x = 6) and (y = 6) then begin // base case
f := max(1, -mat[y][x] + 1);
end else begin
f := max(1, -mat[y][x] + min(f(y+1, x), f(y, x+1)));
end;
dp[y][x] := f;
end;
end;
begin
inf := 1000000000;
for j:=1 to 6 do for i:=1 to 6 do dp[j][i] := -1;
for j:=1 to 6 do begin
for i:=1 to 6 do begin
write(f(j, i), ' ');
end;
writeln();
end;
end.
dmFyCiAgbWF0IDogYXJyYXkgWzEuLjYsIDEuLjZdIG9mIGxvbmdpbnQgPSAKICAgICAgICAoICgtMjMsIDExLCAtMTcsIDgsIC0xMCwgLTEwKSwKICAgICAgICAgICgxNywgLTI1LCAtNTgsIC0zMiwgLTQ1LCAtNjUpLAogICAgICAgICAgKC0yMCwgLTU4LCAyOCwgLTMwLCA0LCAtMjEpLAogICAgICAgICAgKC0xMCwgLTQ3LCAtMzEsIDEwMCwgLTEwLCAyNSksCiAgICAgICAgICAoLTExLCAtNDgsIDI5LCAtMTcsIDIsIC0xNCksCiAgICAgICAgICAoMTQsIC03MCwgODAsIDIwLCA0MSwgLTQxKSApOwogIGluZiA6IGxvbmdpbnQ7CiAgZHAgOiBhcnJheSBbMS4uNiwgMS4uNl0gb2YgbG9uZ2ludDsKICBpLCBqIDogbG9uZ2ludDsKCmZ1bmN0aW9uIG1heChhLCBiOiBsb25naW50KTogbG9uZ2ludDsKYmVnaW4KICBpZiBhID4gYiB0aGVuIG1heCA6PSBhCiAgZWxzZSBtYXggOj0gYjsKZW5kOwoKZnVuY3Rpb24gbWluKGEsIGI6IGxvbmdpbnQpOiBsb25naW50OwpiZWdpbgogIGlmIGEgPCBiIHRoZW4gbWluIDo9IGEKICBlbHNlIG1pbiA6PSBiOwplbmQ7CgpmdW5jdGlvbiBmKHksIHg6IGxvbmdpbnQpOiBsb25naW50OyAvLyBtaW5pbXVtIGhwIGRhcmkgcG9zaXNpIHgsIHkgc2FtcGFpIDYsNgpiZWdpbgogIGlmICh4ID4gNikgb3IgKHkgPiA2KSB0aGVuIGJlZ2luIC8vIG91dCBvZiBib3VuZAogIAlmIDo9IGluZjsKICBlbmQgZWxzZSBpZiBkcFt5XVt4XSA8PiAtMSB0aGVuIGJlZ2luCiAgICBmIDo9IGRwW3ldW3hdOwogIGVuZCBlbHNlIGJlZ2luCiAgICBpZiAoeCA9IDYpIGFuZCAoeSA9IDYpIHRoZW4gYmVnaW4gLy8gYmFzZSBjYXNlCiAgCSAgZiA6PSBtYXgoMSwgLW1hdFt5XVt4XSArIDEpOwogICAgZW5kIGVsc2UgYmVnaW4KICAgICAgZiA6PSBtYXgoMSwgLW1hdFt5XVt4XSArIG1pbihmKHkrMSwgeCksIGYoeSwgeCsxKSkpOwogICAgZW5kOwogICAgZHBbeV1beF0gOj0gZjsKICBlbmQ7CmVuZDsKCmJlZ2luCiAgaW5mIDo9IDEwMDAwMDAwMDA7CiAgZm9yIGo6PTEgdG8gNiBkbyBmb3IgaTo9MSB0byA2IGRvIGRwW2pdW2ldIDo9IC0xOwogIGZvciBqOj0xIHRvIDYgZG8gYmVnaW4KICAgIGZvciBpOj0xIHRvIDYgZG8gYmVnaW4KICAgICAgd3JpdGUoZihqLCBpKSwgJyAnKTsKICAgIGVuZDsKICAgIHdyaXRlbG4oKTsKICBlbmQ7CmVuZC4K