import heapq import itertools def solve(): N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) def sim(p, mi): ms = list(zip(A, itertools.cycle([0]))) heapq.heapify(ms) for j in range(p, p + N): k = j % N nl = ms[0][0] + B[k] // 2 if nl >= mi: return float('inf') heapq.heappushpop(ms, (nl, ms[0][1] + 1)) return max(m[1] for m in ms) mi = float('inf') for i in range(N): mi = min(mi, sim(i, mi)) print(mi) if __name__ == '__main__': solve()