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