#P1001. 最小值

最小值

Description

给定一个集合,其有n个非负整数。每次任意从集合中拿出两个数,设其为xxyy,再将xy+x+yx*y+x+y放回集合。

经过若干次操作后,集合中仅剩一个数。

求这个数的最小值是多少。

答案对10007取模。

Format

Input

第一行一个正整数nn,描述集合大小。

第二行nn个非负整数,表示集合里的数。

Output

输出一行,一个整数,表示经过若干次操作后,集合中剩下的数的最小值。

Samples

3
1 6 2
41
5
4 3 2 5 0
359
10
9 6 7 6 7 4 8 0 5 9
2772

Limitation

本题共有10个测试点,每个测试点10分。

mm为集合中数字的最大值。

对于40%的数据,n10,m10n\leq 10, m \leq 10

对于另外30%的数据,n5000,m500n\leq 5000, m \leq 500

对于另外30%的数据,n100000,m500n\leq 100000, m \leq 500