import bisect N = int(input()) satis = [] for i in range(N): a,b = map(int,input().split()) satis.append((a,b)) half = N // 2 left = satis[:half] right = satis[half:] right_sum = [] left_sum = [] for i in range(2**(len(left))): R = 0 L = 0 for j in range(len(left)): wari = 2**j if((i // wari) % 2 == 1): R += left[j][0] else: L += left[j][1] left_sum.append(R - L) for i in range(2**(len(right))): R = 0 L = 0 for j in range(len(right)): wari = 2**j if((i // wari) % 2 == 1): R += right[j][0] else: L += right[j][1] right_sum.append(R - L) right_sum.sort() ans = float('inf') for x in left_sum: pos = bisect.bisect_left(right_sum,-x) if(pos < len(right_sum) and pos > 0): ans = min(ans,x + right_sum[pos],x + right_sum[pos+1],x + right_sum[pos-1]) elif(pos == 0): ans = min(ans,x + right_sum[pos],x + right_sum[pos+1]) else: ans = min(ans,x + right_sum[pos],x + right_sum[pos-1]) print(ans)