#CF1992B. Angry Monk

Angry Monk

愤怒的僧侣

时间限制:2 秒
空间限制:256 MB

为了庆祝康复,k1o0n 烤了一个巨大的土豆焗菜,长度为 nn 米。

结果 Noobish_Monk 就是不喜欢土豆,于是他决定毁掉这道菜。他把这道菜切成了 kk 块,长度分别为 a1,a2,,aka_1, a_2, \dots, a_k 米。

k1o0n 对此很不高兴。幸运的是,一切都可以挽救。为此,k1o0n 可以执行以下操作之一:

  • 选择一块长度 ai2a_i \ge 2 的块,将其分成两块,长度分别为 11ai1a_i - 1。此时块数增加 11
  • 选择一块长度为 aia_i 的块和另一块长度为 aj=1a_j = 1iji \ne j)的块,将它们合并成一块长度为 ai+1a_i + 1 的新块。此时块数减少 11

帮助 k1o0n 找到将这些碎块合并成完整的一段长度为 nn 的焗菜所需的最少操作次数。

例如,若 n=5n=5k=2k=2a=[3,2]a=[3,2],最优方案如下:

  1. 将长度为 22 的块分成 1111,得到 a=[3,1,1]a=[3,1,1]
  2. 将长度为 33 的块和一块长度为 11 的块合并,得到 a=[4,1]a=[4,1]
  3. 将长度为 44 的块和一块长度为 11 的块合并,得到 a=[5]a=[5]

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试数据组数。

每组数据包含两行。第一行包含两个整数 nnkk2n1092 \le n \le 10^92k1052 \le k \le 10^5)—— 焗菜的长度和块数。

第二行包含 kk 个整数 a1,a2,,aka_1, a_2, \dots, a_k1ain11 \le a_i \le n-1ai=n\sum a_i = n)—— Noobish_Monk 切出的各块长度。

保证所有测试数据的 kk 之和不超过 21052 \cdot 10^5

输出格式

对于每组测试数据,输出一个整数 —— k1o0n 恢复整道菜所需的最少操作次数。

样例输入

4
5 3
3 1 1
5 2
3 2
11 4
2 3 1 5
16 6
1 6 1 1 1 6

样例输出

2
3
9
15