def quick_sort(lista, left, right, key, reversed=False, cmp=None): i = left j = right pivot = key(lista[int((i + j) / 2)]) while i <= j: if cmp == None: condition1 = key(lista[i]) < pivot condition2 = key(lista[j]) > pivot else: condition1 = cmp(lista[i], pivot) condition2 = not(cmp(lista[j], pivot)) if reversed: condition1 = key(lista[i]) > pivot condition2 = key(lista[j]) < pivot while condition1: i = i + 1 if cmp == None: condition1 = key(lista[i]) < pivot else: condition1 = cmp(lista[i], pivot) if reversed: condition1 = key(lista[i]) > pivot while condition2: j = j - 1 if cmp == None: condition2 = key(lista[j]) > pivot else: condition2 = not(cmp(lista[j], pivot)) if reversed: condition2 = key(lista[j]) < pivot if i <= j: temp = lista[i] lista[i] = lista[j] lista[j] = temp i = i + 1 j = j - 1 if left < j: quick_sort(lista, left, j, key, reversed, cmp) if i < right: quick_sort(lista, i, right, key, reversed, cmp) s = input("") prop = s.split(" ") n = int(prop[0]) m = int(prop[1]) boxes = [] for i in range(0, n): s = input("") prop = s.split(" ") boxes.append([int(prop[0]), int(prop[1])]) quick_sort(boxes, 0, n - 1, key=lambda x:x[0]) nrb = 0 nrw = 0 for i in range(0, int(n / 2)): nrb = nrb + boxes[i][1] for i in range(int(n / 2), n): nrw = nrw + boxes[i][0] print(nrb, nrw)