using System; using System.Linq; namespace No370_1{ public class Program{ public static void Main(string[] args){ var sr = new StreamReader(); //--------------------------------- var n = sr.Next(); var m = sr.Next(); var dm = sr.Next(m); n -= dm.Count(x => x == 0); if(n <= 0) { Console.WriteLine(0); return; } var pn = dm.Where(x => x >= 1).Concat(new[]{0}).OrderBy(x => x).ToArray(); var mn = dm.Where(x => x <= -1).Concat(new[]{0}).Select(x => -x).OrderBy(x => x).ToArray(); n++; var from = Math.Max(0, n - pn.Length); var to = Math.Min(n, mn.Length); var ans = int.MaxValue; for(var i = from; i < to; i++){ for(var j = 0; j <= 1; j++){ ans = Math.Min(ans, pn[n - i - 1] * (1 + j) + mn[i] * (2 - j)); } } Console.WriteLine(ans); //--------------------------------- } } public class StreamReader{ private readonly char[] _c = {' '}; private int _index = -1; private string[] _input = new string[0]; public T Next(){ if(_index == _input.Length - 1){ _index = -1; while(true){ string rl = Console.ReadLine(); if(rl == null){ if(typeof(T).IsClass) return default(T); return (T)typeof(T).GetField("MinValue").GetValue(null); } if(rl != ""){ _input = rl.Split(_c, StringSplitOptions.RemoveEmptyEntries); break; } } } return (T)Convert.ChangeType(_input[++_index], typeof(T), System.Globalization.CultureInfo.InvariantCulture); } public T[] Next(int x){ var result = new T[x]; for(var i = 0; i < x; ++i){ result[i] = Next(); } return result; } } }