#480. 子中值

子中值

问题描述

整数 vv 是长度为 mm 的数组 bb 的中值,当且仅当:

  • vv 大于或等于数组中至少 ⌈m2⌉\lceil \frac{m}{2} \rceil 个元素,且
  • vv 小于或等于数组中至少 ⌈m2⌉\lceil \frac{m}{2} \rceil 个元素。

例如

  • [9,3,7][9, 3, 7] 的唯一中值是 77 、
  • [5,3,7,9][5, 3, 7, 9] 的中值是 55 、 66 和 77 ,以及
  • [2,2,2][2, 2, 2] 的唯一中值是 22 。

给你一个整数 kk 和一个数组 a1,…,ana_1, \ldots, a_n ,数组中的整数介于 11 和 nn 之间。

从 11 到 nn 之间的整数 vv 如果存在至少一对索引 (l,r)(l, r) 且满足以下条件,则称该整数 vv 为子中值

  • 1≤l≤r≤n1 \leq l \leq r \leq n ,
  • r−l+1≥kr - l + 1 \geq k ,
  • vv 是子数组 [al,…,ar][a_l, \ldots, a_r] 的中值。

可以证明总是存在至少一个子中值。请找出最大的子中值 vmaxv_{max} 。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt ( 1≤t≤50 0001 \le t \le 50\,000 )。测试用例说明如下。

每个测试用例的第一行包含两个整数 nn 和 kk ( 1≤k≤n≤300 0001 \leq k \leq n \leq 300\,000 )。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n ( 1≤ai≤n1 \leq a_i \leq n )。

保证所有测试用例中 nn 的总和不超过 300 000300\,000 。

输出格式

对于每个测试用例,输出一个整数最大子中值 vmaxv_{max}。

样例输入

7
4 3
4 1 2 4
5 2
1 2 3 2 1
5 3
1 2 3 2 1
5 3
1 1 2 5 3
1 1
1
2 1
2 1
4 1
1 2 1 3

样例输出

4
3
2
3
1
2
3