#Lutece3230. 叠梯子

叠梯子

Migrated from Lutece 3230 叠梯子

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

qzr 站在一个巨大的书架前,他希望取到一本高度为 h 的书。这本书所在的位置是如此之高,以至于 qzr 的身高可以被忽略不计。为了取到这本书,qzr 找来了 n 个梯子,第 i 个梯子的长度为 LiL_i ,qzr 决定选出一些梯子首尾相接组成一个大梯子,这把大梯子的长度为组成它的梯子的长度之和。qzr 认为只要大梯子的长度大于等于 h ,他就可以拿到书,然而为了在大梯子断开时增加生存率,他希望大梯子长度在能够够到书的前提下尽可能短。现在请你告诉他,大梯子的长度减去书的高度的最小值是多少。

Input

第一行两个正整数 n 和 h,代表梯子的个数与书的高度。 接下来 n 行每行一个正整数 LiL_i ,代表梯子长度。

Output

一个正整数,代表大梯子长度减去书的高度的最小值。

Samples

5 16
3
1
3
5
6
1

Constraints

1<=n<=201<=n<=20 1<=h<=1071<=h<=10^7 1<=Li<=h1<=L_i<=h 保证所有梯子的长度之和大于等于书的高度

Note

样例解释: 选择长度为 3,3,5,6 的梯子,大梯子的长度为17,因此答案为 17-16=1。

Resources

2024 UESTC ICPC Training for Search and Dynamic Programming