using System;
using System.Collections.Generic;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
int T = Convert.ToInt32(Console.ReadLine());//测试数据的组数
List<int> days = new List<int>();//存储数据的组数的最大连续天数结果
for (int j = 0; j < T; j++)
{
string NM = Console.ReadLine();//存储未签到天数总数以及补提交卡数
string[] data = (Console.ReadLine()).Split(' ');//存储未存储天数的具体数据
int n = Convert.ToInt32(NM.Split(' ')[0]);//n未签到天数总数
int m = Convert.ToInt32(NM.Split(' ')[1]);//m补提交卡数
int[] notSignDays = new int[n + 2];
notSignDays[n + 1] = 100;
notSignDays[0] = 0;
//0 34 77 82 83 84 100
//0 1 2 3 4 5 6
for (int i = 1; i < notSignDays.Length - 1; i++)
{
notSignDays[i] = Convert.ToInt32(data[i - 1]);
}
int continuityMaxDays = 0;
if (m >= n)
{
continuityMaxDays = 100;
}
else
{
for (int i = 1; i < notSignDays.Length - m; i++)
{
#region 总结规律
////m=1 n=5
////1
//notSignDays[1+m] - notSignDays[1-1]-1;
////2
//notSignDays[2+m] - notSignDays[2-1] - 1;
////3
//notSignDays[3+m] - notSignDays[3-1] - 1;
////4
//notSignDays[5] - notSignDays[3] - 1;
////5
//notSignDays[6] - notSignDays[4] - 1;
////m=2 n=5
////1 1+M - 1-1
//notSignDays[3] - notSignDays[0] - 1;
////2
//notSignDays[4] - notSignDays[1] - 1;
////3
//notSignDays[5] - notSignDays[2] - 1;
////4
//notSignDays[6] - notSignDays[3] - 1;
#endregion
if (notSignDays[i + m] - notSignDays[i - 1] - 1 > continuityMaxDays)
{
continuityMaxDays = notSignDays[i + m] - notSignDays[i - 1] - 1;
}
}
}
days.Add(continuityMaxDays);
}
foreach (var item in days)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}