← Home
```go
package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	scanner.Scan()
	t, _ := strconv.Atoi(scanner.Text())
	for ; t > 0; t-- {
		scanner.Scan()
		n, _ := strconv.Atoi(scanner.Text())
		
		nn := int64(n)
		s := nn * (nn + 1) * (4*nn - 1) / 6
		
		fmt.Printf("%d %d\n", s, 2*n-1)
		
		fmt.Print("1 1")
		for j := 1; j <= n; j++ {
			fmt.Printf(" %d", j)
		}
		fmt.Println()
		
		for i := 1; i <= n-1; i++ {
			fmt.Printf("2 %d", i)
			for j := n; j >= 1; j-- {
				fmt.Printf(" %d", j)
			}
			fmt.Println()
			
			fmt.Printf("1 %d", i+1)
			for j := n; j >= 1; j-- {
				fmt.Printf(" %d", j)
			}
			fmt.Println()
		}
	}
}
```