#include<algorithm>
#include<iostream>
#include<string>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
long long fn(long long p,long long q){
  long long s;
  while(q){
    p%=q;
    s=p;
    p=q;
    q=s;
  }
  return p;
}
int main(){
  int i,j,k;
  int n;
  while(cin>>n&&n){
    long long a[31400],b[31400];
    j=0;
    k=0;
    for(i=0;i<n*(n+1)/2;i++){
      long long p;
      cin>>p;
      if(p%2){
	a[j]=p;
	j++;
      }else{
	b[k]=p;
	k++;
      }
    }
    sort(a,a+j);
    sort(b,b+k);
    long long c=fn(a[0],b[0]);
    c=(long long)sqrt(b[0]/c*(b[1]/(a[0]/c)));
    cout<<c<<endl;
    for(i=0;i<k-1;i++)
      cout<<b[i]/c<<" ";
    cout<<b[i]/c<<endl;
  }
  return 0;
}
### Prompt

Construct a cpp code solution to the problem outlined:

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

### Response

```cpp
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
long long fn(long long p,long long q){
  long long s;
  while(q){
    p%=q;
    s=p;
    p=q;
    q=s;
  }
  return p;
}
int main(){
  int i,j,k;
  int n;
  while(cin>>n&&n){
    long long a[31400],b[31400];
    j=0;
    k=0;
    for(i=0;i<n*(n+1)/2;i++){
      long long p;
      cin>>p;
      if(p%2){
	a[j]=p;
	j++;
      }else{
	b[k]=p;
	k++;
      }
    }
    sort(a,a+j);
    sort(b,b+k);
    long long c=fn(a[0],b[0]);
    c=(long long)sqrt(b[0]/c*(b[1]/(a[0]/c)));
    cout<<c<<endl;
    for(i=0;i<k-1;i++)
      cout<<b[i]/c<<" ";
    cout<<b[i]/c<<endl;
  }
  return 0;
}
```