#nullable enable #region var (_input, _iter) = (Array.Empty(), 0); T I() where T : IParsable { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Trim().Split(' '), 0); return T.Parse(_input[_iter++], null); } #endregion static T[] Range(int n, Func F) => Enumerable.Range(0, n).Select(_ => F()).ToArray(); var h = I(); var w = I(); var a = I(); var b = I(); var r1 = I(); var c1 = I(); var r2 = I(); var c2 = I(); var p = I(); var q = I(); var ans = int.MaxValue; for (var i = 1; i <= h; i++) for (var j = 1; j <= w; j++) { if (r1 <= i && i <= r2 && c1 <= j && j <= c2) { var d = Math.Abs(a - i) + Math.Abs(b - j) + Math.Abs(p - i) + Math.Abs(q - j); if (d < ans) ans = d; } } ans += Math.Abs(a - p) + Math.Abs(b - q); Console.WriteLine(ans);