N, M = gets.split.map(&:to_i) D = M.times.map {gets.to_i} L = D.select {|d| d < 0}.map(&:abs).sort R = D.select {|d| d >= 0}.sort ans = ([0, N - L.size].max..[N, R.size].min).map {|k| x = [0, *R[0, k]].max y = [0, *L[0, N - k]].max (x == 0 || y == 0) ? [x, y].max : 2*[x, y].min + [x, y].max}.min puts ans