n = gets.not_nil!.to_i c = [] of Int32 (2 * n).times do c.concat(gets.not_nil!.split.map(&.to_i)) end b = c.pop(n) result = -(1..n).map do a = c.map { |v| v * ~n }.sort b.rotate!.map do |l| m = a.pop + (l // 2) * ~n - 1 if idx = a.bsearch_index { |v| v > m } a.insert(idx, m) else a << m end m % ~n end.min end.max puts result