package main
import (
"bufio"
"fmt"
"os"
)
func sub(a, b, k int) int {
res := 0
p := 1
for a > 0 || b > 0 {
d1 := a % k
d2 := b % k
d := (d1 - d2 + k) % k
res += d * p
p *= k
a /= k
b /= k
}
return res
}
func main() {
reader := bufio.NewReader(os.Stdin)
var t int
fmt.Fscan(reader, &t)
for i := 0; i < t; i++ {
var n, k int
fmt.Fscan(reader, &n, &k)
for m := 0; m < n; m++ {
var q int
if m == 0 {
q = 0
} else if m%2 == 1 {
q = sub(m-1, m, k)
} else {
q = sub(m, m-1, k)
}
fmt.Println(q)
var resp int
fmt.Fscan(reader, &resp)
if resp == 1 {
break
} else if resp == -1 {
return
}
}
}
}