N, M = gets.split.map(&:to_i) D = M.times.map { gets.to_i } m = D.select { |d| d < 0 }.sort.reverse n = D.select { |d| d >= 0 }.sort ans = Float::INFINITY 0.upto(N) do |a| b = N - a next if m.size < a next if n.size < b v1 = a == 0 ? 0 : m[a - 1].abs v2 = b == 0 ? 0 : n[b - 1].abs c, d = [v1, v2].minmax v = 2 * c + d ans = v if ans > v end puts ans