← Home
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
			}
		}
	}
}