from bisect import * N = int(input()) N1, N2 = (N + 1)//2, N//2 A, B = [0] * N1, [0] * N1 C, D = [0] * N2, [0] * N2 for i in range(N1): A[i], B[i] = map(int, input().split()) for i in range(N2): C[i], D[i] = map(int, input().split()) if N == 1: print(min(A[0], B[0])) exit() inf = 10 ** 18 L1, L2 = [], [inf, -inf] for s in range(1 << N1): v = 0 for i in range(N1): if (s >> i) & 1: v += A[i] else: v -= B[i] L1.append(v) for s in range(1 << N2): v = 0 for i in range(N2): if (s >> i) & 1: v += C[i] else: v -= D[i] L2.append(v) L2.sort() ans = inf for a in L1: ind = bisect_right(L2, -a) ans = min(ans, abs(a + L2[ind]), abs(a + L2[ind-1])) print(ans)