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)
}
}