use proconio::*; fn main() { input! { _h: isize, _w: isize, a: isize, b: isize, r1: isize, c1: isize, r2: isize, c2: isize, p: isize, q: isize, } let mv = |x: isize, y: isize, z: isize| -> isize { (x - y).abs() + (y - z).abs() + (z - x).abs() }; let r1 = if (r1..=r2).contains(&a) { a } else { r1 }; let c1 = if (c1..=c2).contains(&b) { b } else { c1 }; let dis1_h = mv(a, r1, p); let dis2_h = mv(a, r2, p); let dis1_w = mv(b, c1, q); let dis2_w = mv(b, c2, q); let ans = dis1_h.min(dis2_h) + dis1_w.min(dis2_w); println!("{ans}"); }