write a go solution for C. Make it Equaltime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGiven two multisets S and T of size n and a positive integer k, you may perform the following operations any number (including zero) of times on S: Select an element x in S, and remove one occurrence of x in S. Then, either insert x+k into S, or insert |x-k| into S. Determine if it is possible to make S equal to T. Two multisets S and T are equal if every element appears the same number of times in S and T.InputEach test contains multiple test cases. The first line contains an integer t (1<=t<=10^4) — the number of test cases. The description of the test cases follows. The first line contains two integers n and k (1<=n<=2*10^5, 1<=k<=10^9) — the size of S and the constant, respectively.The second line contains n integers S_1,S_2,ldots,S_n (0<=S_i<=10^9) — the elements in S.The third line contains n integers T_1,T_2,ldots,T_n (0<=T_i<=10^9) — the elements in T.It is guaranteed that the sum of n over all test cases does not exceed 2*10^5.OutputFor each test case, output "YES" if it is possible to make S equal to T, and "NO" otherwise. You can output the answer in any case (upper or lower). For example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as positive responses.ExampleInput51 3121 84123 56 2 98 4 112 72 82 93 20 1 01 0 1OutputYES YES YES NO NO NoteIn the first test case, we can remove one occurrence of 1 from S and insert |1-k|=|1-3|=2 into S, making S equal to T.In the second test case, we can remove one occurrence of 4 from S and insert 4+k=4+8=12 into S, making S equal to T.In the last test case, we can show that it is impossible to make S equal to T.. Output only the code with no comments, explanation, or additional text.