B. Subtract Operationtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a list of n integers. You can perform the following operation: you choose an element x from the list, erase x from the list, and subtract the value of x from all the remaining elements. Thus, in one operation, the length of the list is decreased by exactly 1.Given an integer k (k>0), find if there is some sequence of n-1 operations such that, after applying the operations, the only remaining element of the list is equal to k.InputThe input consists of multiple test cases. The first line contains a single integer t (1 \leq t \leq 10^4) — the number of test cases. Description of the test cases follows.The first line of each test case contains two integers n and k (2 \leq n \leq 2\cdot 10^5, 1 \leq k \leq 10^9), the number of integers in the list, and the target value, respectively.The second line of each test case contains the n integers of the list a_1, a_2, \ldots, a_n (-10^9 \leq a_i \leq 10^9).It is guaranteed that the sum of n over all test cases is not greater that 2 \cdot 10^5.OutputFor each test case, print YES if you can achieve k with a sequence of n-1 operations. Otherwise, print NO.You may print each letter in any case (for example, "YES", "Yes", "yes", "yEs" will all be recognized as a positive answer).ExampleInput
4
4 5
4 2 2 7
5 4
1 9 1 3 4
2 17
17 0
2 17
18 18
Output
YES
NO
YES
NO
NoteIn the first example we have the list \{4, 2, 2, 7\}, and we have the target k = 5. One way to achieve it is the following: first we choose the third element, obtaining the list \{2, 0, 5\}. Next we choose the first element, obtaining the list \{-2, 3\}. Finally, we choose the first element, obtaining the list \{5\}. 
4
4 5
4 2 2 7
5 4
1 9 1 3 4
2 17
17 0
2 17
18 18

YES NO YES NO 
['data structures', 'greedy', 'math', 'two pointers', '*1100']