Codeforces Round 447 (Div. 2)
C
Marco and GCD Sequence
Codeforces
1900
原题
← BD →
翻译中…

In a dream Marco met an elderly man with a pair of black glasses. The man told him the key to immortality and then disappeared with the wind of time.

翻译中…

When he woke up, he only remembered that the key was a sequence of positive integers of some length $*n*$, but forgot the exact sequence. Let the elements of the sequence be $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$. He remembered that he calculated $*gcd*(*a*_{*i*}, *a*_{*i* + 1}, ..., *a*_{*j*})$ for every $1 ≤ *i* ≤ *j* ≤ *n*$ and put it into a set $*S*$. $*gcd*$ here means the greatest common divisor.

翻译中…

Note that even if a number is put into the set $*S*$ twice or more, it only appears once in the set.

翻译中…

Now Marco gives you the set $*S*$ and asks you to help him figure out the initial sequence. If there are many solutions, print any of them. It is also possible that there are no sequences that produce the set $*S*$, in this case print -1.

翻译中…

Input

翻译中…

The first line contains a single integer $*m*$ ($1 ≤ *m* ≤ 1000$) — the size of the set $*S*$.

翻译中…

The second line contains $*m*$ integers $*s*_{1}, *s*_{2}, ..., *s*_{*m*}$ ($1 ≤ *s*_{*i*} ≤ 10^{6}$) — the elements of the set $*S*$. It's guaranteed that the elements of the set are given in strictly increasing order, that means $*s*_{1} < *s*_{2} < ... < *s*_{*m*}$.

翻译中…

Output

翻译中…

If there is no solution, print a single line containing -1.

翻译中…

Otherwise, in the first line print a single integer $*n*$ denoting the length of the sequence, $*n*$ should not exceed $4000$.

翻译中…

In the second line print $*n*$ integers $*a*_{1}, *a*_{2}, ..., *a*_{*n*}$ ($1 ≤ *a*_{*i*} ≤ 10^{6}$) — the sequence.

翻译中…

We can show that if a solution exists, then there is a solution with $*n*$ not exceeding $4000$ and $*a*_{*i*}$ not exceeding $10^{6}$.

翻译中…

If there are multiple solutions, print any of them.

翻译中…

Note

翻译中…

In the first example $2 = *gcd*(4, 6)$, the other elements from the set appear in the sequence, and we can show that there are no values different from $2$, $4$, $6$ and $12$ among $*gcd*(*a*_{*i*}, *a*_{*i* + 1}, ..., *a*_{*j*})$ for every $1 ≤ *i* ≤ *j* ≤ *n*$.

翻译中…

样例

Input #1
4
2 4 6 12
Output #1
3
4 6 12
InputCopy OutputCopy
Input #2
2
2 3
Output #2
-1
InputCopy OutputCopy
题目信息
题号
894C
时间限制
1 s
内存限制
256 MB
标签
构造
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。