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)
}
}
}