import sys def main(): N = int(sys.stdin.readline()) A = list(map(int, sys.stdin.readline().split())) B = list(map(int, sys.stdin.readline().split())) min_max = float('inf') for start in range(N): enemy_order = B[start:] + B[:start] current_levels = A.copy() selected = [False] * N counts = [0] * N for b in enemy_order: m = min(current_levels) selected_i = -1 # Check unselected monsters first for i in range(N): if not selected[i] and current_levels[i] == m: selected_i = i break # If no unselected found, check all if selected_i == -1: for i in range(N): if current_levels[i] == m: selected_i = i break counts[selected_i] += 1 selected[selected_i] = True current_levels[selected_i] += b // 2 current_max = max(counts) if current_max < min_max: min_max = current_max # Early exit if possible if min_max == 1: break print(min_max) if __name__ == "__main__": main()