#include<bits/stdc++.h>
using namespace std;

char infile[100], outfile[100];

long long int A[1000010];
int main(){
	long long int i, j, n, m, s=0, ss=0,l,I,T,k;
	scanf("%lld",&T);
	srand(time(NULL));
	for(I=1;I<=T;I++){
        sprintf(infile, ".%d.in", I);
        freopen(infile, "w", stdout);
		scanf("%lld %lld %lld", &n, &m, &k);
		printf("%lld %lld\n", n, m);
		for(i=0;i<n;i++){
			A[i] = (((((((rand()%k+1)*rand())%k+1)*rand())%k+1)*rand())%k+1);
			printf("%lld ",A[i]);
		} 
		ss = 0;
		s = 0;
		i = 0;
		j = 0;
		while(j<n){
			ss = ss + A[j];
			j++;
			while(m<ss){
				ss = ss - A[i];
				i++;
			}
			s = (s+j-i)%1000000007;
		}
		sprintf(outfile, ".%d.out", I);
        freopen(outfile, "w", stdout);
		printf("%lld",s);
	}
}
