← Home
package main

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

func main() {
	var n int
	if _, err := fmt.Scan(&n); err != nil {
		return
	}

	if n == 1 {
		fmt.Println(1)
		fmt.Println("1 1")
		return
	}

	k := (2*n + 1) / 3
	m := n - k

	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	fmt.Fprintln(out, k)

	if m > 0 {
		for i := 1; i <= m/2; i++ {
			a := i
			b := m - i + 1
			fmt.Fprintf(out, "%d %d\n", a, b)
			fmt.Fprintf(out, "%d %d\n", b, a)
		}

		for i := 1; i <= (m-1)/2; i++ {
			a := m + i
			b := 2*m - i
			fmt.Fprintf(out, "%d %d\n", a, b)
			fmt.Fprintf(out, "%d %d\n", b, a)
		}

		var rem int
		if m%2 == 0 {
			rem = m + m/2
		} else {
			rem = (m + 1) / 2
		}
		fmt.Fprintf(out, "%d %d\n", rem, rem)
	}

	for x := 2*m; x <= k; x++ {
		fmt.Fprintf(out, "%d %d\n", x, x)
	}
}