#include<bits/stdc++.h>

using namespace std;
int T,n,k,las,r,res;
int xxor(int a,int b,int k){
    int c=0,tmp=1;
    while(a|b){
        c=c+(a%k+b%k)%k*tmp;
        a/=k;b/=k;tmp=tmp*k;
    }
    return c;
}
int fasxxor(int a,int b){
    int c=0;
    for(;b;b>>=1,a=xxor(a,a,k)){
        if(b&1)c=xxor(c,a,k);
    }
    return c;
}
int main(){
    // for(int i=1;i<=10;i++){
    //     for(int j=1;j<=10;j++){
    //         printf("%d %d %d %d\n",i,j,i^j,xxor(i,j,2));
    //     }
    // }
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&k);
        las = 0;res = 0;
        for(int i=0;i<n;i++){
            las=xxor(res,(i&1)?fasxxor(i,k-1):i,k);
            printf("%d\n",las);
            res=xxor(fasxxor(res,k-1),las,k);
            fflush(stdout);
            scanf("%d",&r);
            if(r==1)break;
        }
    }
    return 0;
}