#U114. 总之就是非常实惠

总之就是非常实惠

背景

小司特有的哼(zéng~)

题目描述

由崎星空和由崎司正在超市购物,发现超市有一个活动, 将给你一个长度为n的数组aa,(a1a_1,a2a_2.......ana_n),当aia_i<=aia_i_-1_1 (2<=i<=n2<=i<=n)时,你可以进行以下两个操作:

  1. 消耗1枚硬币:将aia_i移动到aja_j,使A=aia_i,如下:

如果i>j, j~i-1这个区间的数往右移1位.(ai=a_i=ai1a_{i-1}ai1=a{_i-1}=ai2a_{i-2}.....aj+1=a_{j+1}=aja_j),aja_j=A。

如果i<j, i+1~j这个区间的数往左移1位.(aia_i=ai+1a_{i+1}ai+1a_{i+1}=ai+2a_{i+2}.....aj1a_{j-1}=aja_j),aja_j=A。

  1. 消耗2枚硬币,将aia_i从数组中删除,每进行一次该操作,数组的长度就会-1,既n会-1,如下:

(i+1)~n这个区间的数往左移1位. (aia_i=ai+1a_{i+1}ai+1a_{i+1}=ai+2a_{i+2}......an1a_{n-1}=ana_{n},最后将ana_n删除)。

例如有nn=5,aa={2,1,3,4,5}。我们可以对a2a_2进行操作,选择操作1,(选择jj=1,那么aa={1,2,3,4,5},选择jj=4,那么aa={2,3,4,1,5}),选择操作2,那么aa={2,3,4,5}。

问你能不能在硬币用完前,使得数组内的数严格递增,并且商家保证数组内相同的数一定连续。 由于完成上面的任务后,所剩余的硬币可以在奖品区挑选任意的奖励,所以由崎司希望以最少的硬币完成这个任务,并且她还想知道剩多少硬币。

输入

第一行输入一个t,表示有t轮,(1<=t<=10)

每轮的第一行输入两个整数n,m,表示数组的长度和拥有的硬币(1<=n<=10610^6,0<=m<=106^{6})

每轮的第二行输入n个整数,a1a_1a2a_2.....ana_n,(0<=aia_i<=10610^{6})。

输出

每轮有一个输出,如果可以完成任务,输出最多能剩多少枚硬币,如果不能完成任务,输出"heng"。

样例

样例1

2
5 5
2 1 3 4 5
5 1
1 2 2 3 4
4
heng