你是一个高维空间魔术师,手上有一个最初维度为 维的超立方体,给定每一维的边长为 。对于一个 维的超立方体,定义其各维度边长和为 ,超体积为 。
你想得到一个各维度边长和为 ,超体积为 的超立方体,于是决定将手上现有的超立方体进行降维操作和升维操作。
无论升维还是降维操作都非常消耗精力,因此你想知道最少需要通过多少次操作,才能得到一个各维度边长和为 ,超体积为 的超立方体。
第一行三个整数 (, )。
第二行 个整数,表示初始超立方体的每个维度的边长 ()。
输出一个整数,表示最小操作次数。如果无法得到满足条件的立方体,输出 。
2 5 6 1 2
2
3 6 5 1 2 3
3
2 114514 735134400 114 514
20
2 4 7 1 3
-1
对于第一个样例,一种可行的方法是:先删去边长为 的维度,然后加入一个边长为 的维度。