CF1983F array-value

Description

You have an array of non-negative integers $ a_1, a_2, \ldots, a_n $ . The value of a sub-array of length $ \ge 2 $ , $ a[l, r] = [a_l, a_{l+1}, \ldots, a_r] $ is the minimum value of $ a_i \oplus a_j $ such that $ l \le i < j \le r $ , where $ \oplus $ is the xor (exclusive-or) operator. You have to find the $ k $ -th smallest value over all sub-arrays of length $ \ge 2 $ .

Input Format

The first line of the input contains multiple test cases $ t $ ( $ 1 \le t \le 2 \cdot 10^4 $ ). The first line of each test case contains integer numbers $ n $ and $ k $ ( $ 2 \le n \le 10^5 $ , $ 1 \le k \le \frac{n\cdot(n-1)}{2} $ ). The second line of the input contains $ n $ non-negative integer numbers $ a_1, a_2, \ldots, a_n $ ( $ 0 \le a_i \le 10^9 $ ) — the array itself. It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 10^5 $ .

Output Format

Print the $ k $ -th smallest value obtained over all subarrays of length at least $ 2 $ .

Explanation/Hint

In the first testcase, we have subarrays with their smallest exclusive-or pair as: $ [1,2]: 3 $ $ [2,3]: 1 $ $ [3,4]: 7 $ $ [4,5]: 1 $ $ [1,2,3]: 1 $ $ [2,3,4]: 1 $ $ [3,4,5]: 1 $ $ [1,2,3,4]: 1 $ $ [2,3,4,5]: 1 $ $ [1,2,3,4,5]: 1 $ The sorted order would be: $ 1, 1, 1, 1, 1, 1, 1, 1, 3, 7 $ . Therefore, the second smallest element would be $ 1 $ .