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 k in range(N): enemy_order = B[k:] + B[:k] current_A = A.copy() used = [False] * N count = [0] * N for b in enemy_order: min_unused_val = float('inf') min_unused_idx = -1 min_used_val = float('inf') min_used_idx = -1 for i in range(N): if not used[i]: if current_A[i] < min_unused_val: min_unused_val = current_A[i] min_unused_idx = i elif current_A[i] == min_unused_val and (min_unused_idx == -1 or i < min_unused_idx): min_unused_idx = i else: if current_A[i] < min_used_val: min_used_val = current_A[i] min_used_idx = i elif current_A[i] == min_used_val and (min_used_idx == -1 or i < min_used_idx): min_used_idx = i if min_unused_val <= min_used_val and min_unused_idx != -1: chosen = min_unused_idx used[chosen] = True else: chosen = min_used_idx current_A[chosen] += b // 2 count[chosen] += 1 current_max = max(count) if current_max < min_max: min_max = current_max print(min_max) if __name__ == "__main__": main()