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