← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	fmt.Fscan(reader, &t)

	for tc := 0; tc < t; tc++ {
		var n, m int
		fmt.Fscan(reader, &n, &m)

		if m == 1 {
			fmt.Fprintln(writer, 0)
			for i := 0; i < n; i++ {
				fmt.Fprintln(writer, 0)
			}
			continue
		}

		beauty := m
		if n+1 < m {
			beauty = n + 1
		}
		fmt.Fprintln(writer, beauty)

		for i := 0; i < n; i++ {
			shift := (i % (m - 1)) + 1
			for j := 0; j < m; j++ {
				if j > 0 {
					fmt.Fprint(writer, " ")
				}
				fmt.Fprint(writer, (j+shift)%m)
			}
			fmt.Fprintln(writer)
		}
	}
}