uses crt;
var
a: array [1 .. 100, 1 .. 100] of real;
i, j, n, m, k: integer;
buf: real;
begin
read(m);
read(n);
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := (i * sin(j)) / cos(i);
end;
end;
for i := 1 to m do
begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;
for i := 1 to n do
for j := m downto 2 do
for k := 1 to j - 1 do
if a[k, i] > a[k + 1, i] then
begin
buf := a[k, i];
a[k, i] := a[k + 1, i];
a[k + 1, i] := buf;
end;
writeln;
writeln;
for i := 1 to m do
begin
for j := 1 to n do
write(a[i, j]:4);
writeln;
end;
readln;
readln;
end.