← Home
package main

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

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

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

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

		a := make([]int64, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
		}

		sort.Slice(a, func(i, j int) bool { return a[i] < a[j] })

		used := make([]bool, n)
		j := 0
		pairs := 0

		for i := 0; i < n; i++ {
			if used[i] {
				continue
			}
			if j <= i {
				j = i + 1
			}
			for j < n && (used[j] || a[j] < a[i]*x) {
				j++
			}
			if j < n && a[j] == a[i]*x {
				used[j] = true
				pairs++
				j++
			}
		}

		fmt.Fprintln(out, n-2*pairs)
	}
}