← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	fmt.Fscan(reader, &t)

	for i := 0; i < t; i++ {
		var n, x int
		fmt.Fscan(reader, &n, &x)

		M := x
		if n+1 < M {
			M = n + 1
		}

		lists := make([][]int, M)

		for j := 0; j < n; j++ {
			var a int
			fmt.Fscan(reader, &a)
			r := a % x
			if r < M {
				lists[r] = append(lists[r], a)
			}
		}

		for j := 0; j < M; j++ {
			sort.Slice(lists[j], func(p, q int) bool {
				return lists[j][p] > lists[j][q]
			})
		}

		ans := 0
		for v := 0; v <= n; v++ {
			r := v % x
			if len(lists[r]) == 0 {
				ans = v
				break
			}
			last := lists[r][len(lists[r])-1]
			lists[r] = lists[r][:len(lists[r])-1]
			if last > v {
				ans = v
				break
			}
		}
		fmt.Fprintln(writer, ans)
	}
}