program mnogosamdobar;

var
  a: array[1..50] of integer;
  n, i, j: integer;
  nzs: real;

function Prost(x: integer): boolean;
var
  i: integer;
  indikator: boolean;
begin
  indikator := true;
  for i := 2 to trunc(sqrt(x)) do
    if (x mod i = 0) then 
    begin
      indikator := false;
      break; 
    end;
  
  Prost := indikator;
  
end;

function skrati(var x, y: integer; k: integer): integer;
var
  s: integer;
begin
  s := 0;
  while (x mod k = 0) and (y mod k = 0) do
  begin
    x := x div k;
    y := y div k;
    s := s + 1;
  end;
  skrati := s;
end;

function min(x, y: integer): integer;
begin
  if(x < y) then min := x else min := y;
end;

function sredi(var x, y: integer): real;
var
  nzs: real; i: integer;
begin
  nzs := 1;
  for i := 2 to min(x, y) do 
    if(Prost(i)) then
      nzs := nzs * power(i, skrati(x, y, i));
  
  nzs := nzs * x * y;
  sredi := nzs;
end;

var
  x, y: integer;

begin
  read(n);
  
  for i := 1 to n do read(a[i]);
  
  i := 1;
  
  while(i <= n - 1) do 
  begin
    nzs := sredi(a[i], a[i + 1]);
    writeln('   (', a[i], ',', a[i + 1], ')-', nzs);
    i := i + 2;
  end;
  
  
  i := 1;
  while i <= n - 1 do
  begin
    if a[i] <= a[i + 1] then
    begin
      for j := i to n - 2 do
      begin
        a[j] := a[j + 2];
      end;
      
      n := n - 2;
    end
    else i := i + 2;
  end;
  
  for i := 1 to n do
  begin
    write(a[i], ' ');
  end;
  
  
end.