use std::mem::swap; use proconio::input; fn main() { input! { mut h: usize, mut w: usize, } if h % 2 == 0 && w % 2 == 0 { if h.min(w) <= 4 { let mut swaped = false; if w < h { swap(&mut h, &mut w); swaped = true; } let mut c = vec![vec![0; w]; h]; for i in 0..h { for j in 0..w { c[i][j] = (i + 1) / 2 + 1; } } println!("{}", h / 2 + 1); for i in (0..h).step_by(2) { for j in 0..w { if !swaped { println!( "{} {} {} {} {} {}", i + 1, j + 1, c[i][j], i + 2, j + 1, c[i + 1][j] ); } else { println!( "{} {} {} {} {} {}", j + 1, i + 1, c[i][j], j + 1, i + 2, c[i + 1][j] ); } } } } else { println!("4"); for i in 1..=h { println!("{} {} {} {} {} {}", i, 1, 1, i, 2, 2); println!("{} {} {} {} {} {}", i, w - 1, 3, i, w, 4); } for i in (1..=h).step_by(2) { for j in 3..=w - 2 { println!("{} {} {} {} {} {}", i, j, 2, i + 1, j, 3); } } } } }