fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut result = vec![]; for i in (0..n).rev() { for j in n-i-1..i { result.push((j+1, i+1)); } } println!("{}",result.len()); for &(u, v) in result.iter() { println!("{} {}", u, v); } }