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

100768 - 一年级

时间限制

1000 毫秒

内存限制

128 MB

通过次数

8

提交次数

26

将一个数组里面每个0变为一个正整数,使得整个数组是严格升序的。

输入

第一行一个正整数n,表示数组中有多少个数。

第二行,na_i依次表示数组中的数。

对于100%的数据:

1\le n \le 10^5

1\le a_i \le 10^5

输出

一个整数,表示数组的所有元素之和的最小值。若数组无法严格上升,输出-1

样例

输入

3
1 0 3

输出

6

输入

3
0 0 0

输出

6

输入

3
0 1 2

输出

-1