p00654 Squid Multiplication_17036
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.

Example

Input

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


Output

2
3 5 7
6
5 7
# AOJ 1069: Squid Multiplication
# Python3 2018.7.10 bal4u

def gcd(a, b):
	while b != 0:
		r = a % b
		a, b = b, r
	return a

while True:
	n = int(input())
	if n == 0: break
	even, odd = [], []
	b = list(map(int, input().split()))
	for i in b:
		if i & 1: odd.append(i)
		else: even.append(i)
	even.sort()
	odd.sort()
	e1, e2, o1 = even[0], even[1], odd[0];
	g = gcd(e1, o1)
	e1, o1 = e1//g, o1//g
	g = gcd(e2, o1)
	e2, o1 = e2//g, o1//g
	g = int((e1 * e2)**0.5)
	print(g)
	print(*[i//g for i in even])

