use proconio::input; fn main() { input! { n: usize, m: usize, } let mut es = Vec::with_capacity(n * m); for i in 0..n { for j in 0..m - 1 { es.push([m * i + j, m * i + j + 1]); } } for i in 0..n { es.push([m * i, m * ((i + 1) % n)]); } println!("{} {}", n * m, n * m); for [u, v] in es.iter().cloned() { println!("{} {}", u + 1, v + 1); } }