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 C++ (judge verdict: Wrong Answer)

#include <stdio.h>
#include <algorithm>
using namespace std;
#define ll long long

const int M = 256;
ll b[M*M];

ll gcd(ll a,ll b)
{
	ll c = a%b;
	while(c)
	{
		a = b;
		b = c;
		c = a%b;
	}
	return b;
}

void solve()
{
	ll t;
	ll n;
	ll num;
	ll i;
	while(scanf("%lld",&t)!=EOF)
	{
		if(t == 0)
		{
			break;
		}
		n = t*(t+1)/2;
		for(i = 0 ; i < n; i++)
		{
			scanf("%lld",&b[i]);
		}
		num = gcd(b[0],b[t]);
		if(num%2)
		{
			printf("%lld\n",b[0]/num);
			i = 1;
			printf("%lld ",num);
			num = b[0]/num;
		}
		else
		{
			printf("%lld\n",num);
			i = 0;
		}
		for(;i<t;i++)
		{
			printf("%lld",b[i]/num);
			if(i != t-1)
			{
				printf(" ");
			}
		}
		printf("\n");
	}
}

int main()
{
	solve();
	return 0;
}