#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] 的中值是 556677 ,以及
  • [2,2,2][2, 2, 2] 的唯一中值是 22

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

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

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

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

输入格式

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

每个测试用例的第一行包含两个整数 nnkk ( 1kn3000001 \leq k \leq n \leq 300\,000 )。

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

保证所有测试用例中 nn 的总和不超过 300000300\,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