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): current_A = A.copy() used = [False] * n count = [0] * n for i in range(n): pos = (start + i) % n b = B[pos] # Find the minimum level min_level = min(current_A) # Collect all candidates with min_level candidates = [] for idx in range(n): if current_A[idx] == min_level: candidates.append(idx) # Find available candidates (not used) available = [] for idx in candidates: if not used[idx]: available.append(idx) if available: selected = available[0] else: selected = candidates[0] count[selected] += 1 current_A[selected] += b // 2 used[selected] = True current_max = max(count) if current_max < min_max: min_max = current_max if min_max == 1: break # Can't get better than 1 print(min_max) if __name__ == "__main__": main()