using System; using System.Collections.Generic; using System.Linq; class Program { static string ReadLine() { return Console.ReadLine(); } static int ReadInt() { return int.Parse(ReadLine()); } static int[] ReadInts() { return ReadLine().Split().Select(int.Parse).ToArray(); } static string[] ReadStrings() { return ReadLine().Split(); } static void Main() { var nm = ReadInts(); int N = nm[0], M = nm[1]; var ps = new List(); var ns = new List(); for (int i = 0; i < M; i++) { int x = ReadInt(); if (x >= 0) { ps.Add(x); } else { ns.Add(-x); } } ps.Sort(); ns.Sort(); int ans = int.MaxValue; for (int i = 0; i < ps.Count; i++) { if (i >= N) break; int n = N - i - 1; if (ns.Count >= n) { if (i+1 == N) { ans = Math.Min(ans, ps[i]); } else { ans = Math.Min(ans, 2 * ps[i] + (n == 0 ? 0 : ns[n-1])); } } } for (int i = 0; i < ns.Count; i++) { if (i >= N) break; int n = N - i - 1; if (ps.Count >= n) { if (i+1 == N) { ans = Math.Min(ans, ns[i]); } else { ans = Math.Min(ans, 2 * ns[i] + (n == 0 ? 0 : ps[n-1])); } } } Console.WriteLine(ans); } }