Problem:
Problem H: Squid Multiplication

Squid Eiko loves mathematics.
Especially she loves to think about integer.
One day, Eiko found a math problem from a website.

"A sequence b ={ai + aj | i < j } is generated from a sequence a ={a0 , ... , an | ai is even if i is 0, otherwise ai is odd}. Given the sequence b , find the sequence a ."

This problem is easy for Eiko and she feels boring. So, she made a new problem by modifying this problem .

"A sequence b ={ai *aj | i < j } is generated from a sequence a ={ a0, ... , an | ai is even if i is 0, otherwise ai is odd}. Given the sequence b , find the sequence a ."

Your task is to solve the problem made by Eiko.

Input

Input consists of multiple datasets.

Each dataset is given by following formats.

n
b0 b1 ... bn*(n+1)/2-1

n is the number of odd integers in the sequence a. The range of n is 2 ≤ n ≤ 250.
bi is separated by a space.
Each bi is 1 ≤ bi ≤ 263-1.
The end of the input consists of a single 0.

Output

For each dataset, you should output two lines.
First line contains a0, an even number in the sequence a.
The second line contains n odd elements separated by a space. The odd elements are sorted by increasing order.
You can assume that the result is greater than or equal to 1 and less than or equal to 231-1.

Sample input

3
6 10 14 15 21 35
2
30 42 35
0

Sample output

2
3 5 7
6
5 7

Solution in Ruby (judge verdict: Accepted)

### main

loop do
  n = gets.to_i
  break if n == 0

  bevs = []
  bods = []
  for b in gets.split.map(&:to_i)
    if (b & 1) == 0
      bevs << b
    else
      bods << b
    end
  end
  bevs.sort!
  bods.sort!
  #p bevs
  #p bods

  fact2 = 1
  b1 = bevs[0]
  while (b1 & 1) == 0
    b1 >>= 1
    fact2 <<= 1
  end
  #p fact2

  bev0 = bevs[0] / fact2
  bev1 = bevs[1] / fact2
  bod0 = bods[0]
  #p [bev0, bev1, bod0]

  b0 =  Math.sqrt(bev0 * bev1 / bod0 + 0.5).to_i * fact2

  puts b0
  puts bevs.map{|bev| bev / b0}.join(' ')
end