#P1374D. Zero Remainder Array

    ID: 5450 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>mathsortingstwo pointers*1400

Zero Remainder Array

No submission language available for this problem.

Description

You are given an array $a$ consisting of $n$ positive integers.

Initially, you have an integer $x = 0$. During one move, you can do one of the following two operations:

  1. Choose exactly one $i$ from $1$ to $n$ and increase $a_i$ by $x$ ($a_i := a_i + x$), then increase $x$ by $1$ ($x := x + 1$).
  2. Just increase $x$ by $1$ ($x := x + 1$).

The first operation can be applied no more than once to each $i$ from $1$ to $n$.

Your task is to find the minimum number of moves required to obtain such an array that each its element is divisible by $k$ (the value $k$ is given).

You have to answer $t$ independent test cases.

The first line of the input contains one integer $t$ ($1 \le t \le 2 \cdot 10^4$) — the number of test cases. Then $t$ test cases follow.

The first line of the test case contains two integers $n$ and $k$ ($1 \le n \le 2 \cdot 10^5; 1 \le k \le 10^9$) — the length of $a$ and the required divisior. The second line of the test case contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$), where $a_i$ is the $i$-th element of $a$.

It is guaranteed that the sum of $n$ does not exceed $2 \cdot 10^5$ ($\sum n \le 2 \cdot 10^5$).

For each test case, print the answer — the minimum number of moves required to obtain such an array that each its element is divisible by $k$.

Input

The first line of the input contains one integer $t$ ($1 \le t \le 2 \cdot 10^4$) — the number of test cases. Then $t$ test cases follow.

The first line of the test case contains two integers $n$ and $k$ ($1 \le n \le 2 \cdot 10^5; 1 \le k \le 10^9$) — the length of $a$ and the required divisior. The second line of the test case contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$), where $a_i$ is the $i$-th element of $a$.

It is guaranteed that the sum of $n$ does not exceed $2 \cdot 10^5$ ($\sum n \le 2 \cdot 10^5$).

Output

For each test case, print the answer — the minimum number of moves required to obtain such an array that each its element is divisible by $k$.

Samples

5
4 3
1 2 1 3
10 6
8 7 1 8 3 7 5 10 8 9
5 10
20 100 50 20 100500
10 25
24 24 24 24 24 24 24 24 24 24
8 8
1 2 3 4 5 6 7 8
6
18
0
227
8

Note

Consider the first test case of the example:

  1. $x=0$, $a = [1, 2, 1, 3]$. Just increase $x$;
  2. $x=1$, $a = [1, 2, 1, 3]$. Add $x$ to the second element and increase $x$;
  3. $x=2$, $a = [1, 3, 1, 3]$. Add $x$ to the third element and increase $x$;
  4. $x=3$, $a = [1, 3, 3, 3]$. Add $x$ to the fourth element and increase $x$;
  5. $x=4$, $a = [1, 3, 3, 6]$. Just increase $x$;
  6. $x=5$, $a = [1, 3, 3, 6]$. Add $x$ to the first element and increase $x$;
  7. $x=6$, $a = [6, 3, 3, 6]$. We obtained the required array.

Note that you can't add $x$ to the same element more than once.