6
2 2 2 3 3 3
2! + 2! + 2! + 3! + 3! + 3!
= 3 * 2! + 3 * 3!
= 3! + 3 * 3!
= 4*3!
*转化的步骤: 当x!阶乘的个数满足x+1个时 就可以转化成 (x+1)! (x+1)x! == (x+1)!,当不能转化的时候,输出此时的m即为结果
n = int(input())
A = list(map(int, input().split()))
A.sort()
# 用字典记录每个数出现的次数,用于转化
d = {}
for x in A:
d[x] = d.get(x, 0) + 1
# print(d)
m = A[0]
# print('value_m',m)
while True:
count = d[m]
# print('value_count',count)
if count % (m + 1) == 0:
#如果可以继续转化,则继续转化
d[m + 1] = d.get(m + 1, 0) + count // (m + 1)
# print('value_d[m+1]',d[m+1])
m = m + 1
# print('value_d:',d)
else:
#如果不能转化,则退出循环输出m的值
break
print(m)