近期发现部分用户尝试利用判题系统的评测信息进行作弊,严重破坏了公平竞争的环境。为维护良好的交流与学习氛围,已对判题机进行了优化,当程序遇到测试点不通过时会立即返回而不评测更多测试点;并且延长提交间隔为60秒。作弊行为不仅违背了学习的初衷,还侵害了其他用户的公平权益,希望所有用户能够遵守规范,专注算法与思维能力的提升。对于恶意多次尝试的用户,我们将保留进一步处置的权利。 —— Administrator

100532 - 非完全平方数

Time Limit

1000 毫秒

Memory Limit

128 MB

通过次数

2

提交次数

4

给一个n个整数的数组,找出数组中最大的非完全平方数。

一个数x被称为完全平方数,是指存在一个整数y使得x=y^2

Input

第一行,一个整数n。1<=n<=1000

第二行,n个整数ai。-10^6<=ai<=10^6

保证至少存在一个非完全平方数。

Output

一个整数,表示数组中最大的非完全平方数。

Examples

Input

2
4 2

Output

2

Input

8
1 2 4 8 16 32 64 576

Output

32

Hint

C++中的nan(not a number):

对负数开方sqrt(-1.0)、对负数求对数(log(-1.0))、0.0/0.0、0.0*inf、inf/inf、inf-inf这些操作都会得到nan。(0/0会产生操作异常;0.0/0.0不会产生操作异常,而是会得到nan)

虽然,nan与整数进行比较运算时,其结果均为false。但是,正确的处理方式应该在产生nan之前——预测是否产生nan并进行合适的处理,次之的处理方式是产生nan之后进行合适的处理(isnan函数可以识别nan)。不要尝试利用这些特性,甚至将nan进行类型转换,将会产生不可预测的值,例如:nan转换为int时将会得到INT_MIN;使用这些特性的程序产生错误后极难查找和修复,是非常low的程序。