← Home
```go
package main

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

type Op struct {
	i, l, r int
}

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n int
		fmt.Fscan(in, &n)

		ops := make([]Op, 0, 2*n)
		for i := 2; i <= n; i++ {
			k := n - i + 1
			if k > 1 {
				ops = append(ops, Op{i, 1, k})
			}
			if k < n {
				ops = append(ops, Op{i, k + 1, n})
			}
		}

		fmt.Fprintln(out, len(ops))
		for _, op := range ops {
			fmt.Fprintln(out, op.i, op.l, op.r)
		}
	}
}
```