def compute_diversity(n_l, n_r, ones_l, ones_r, n):
if n_l == 0:
p_l = 0
else:
p_l = ones_l / n_l
if n_r == 0:
p_r = 0
else:
p_r = ones_r / n_r
left_term = (n_l / n) * p_l * (1 - p_l)
right_term = (n_r / n) * p_r * (1 - p_r)
return left_term + right_term
def main():
n = int(input())
data = []
total_ones = 0
for _ in range(n):
x, y = map(int, input().split())
data.append((x, y))
total_ones += y
data.sort(key=lambda v: v[0])
# Группировка по x
groups = []
i = 0
while i < n:
x_val = data[i][0]
cnt = 0
ones = 0
while i < n and data[i][0] == x_val:
cnt += 1
ones += data[i][1]
i += 1
groups.append((x_val, cnt, ones))
best_t = None
best_val = -1.0
# Инициализируем левую часть как пустую
left_cnt = 0
left_ones = 0
# Случай t < min(x)
first_x = groups[0][0]
t_candidate = first_x - 1
n_l = 0
n_r = n
ones_l = 0
ones_r = total_ones
val = compute_diversity(n_l, n_r, ones_l, ones_r, n)
best_val = val
best_t = t_candidate
# Перебираем группы
for idx, (X, g_cnt, g_ones) in enumerate(groups):
# Кандидат t = X - 1 (левая часть до этой группы)
n_l = left_cnt
n_r = n - n_l
ones_l = left_ones
ones_r = total_ones - ones_l
val = compute_diversity(n_l, n_r, ones_l, ones_r, n)
if val > best_val or (abs(val - best_val) < 1e-12 and X - 1 < best_t):
best_val = val
best_t = X - 1
# Кандидат t = X (левая часть включает группу)
n_l = left_cnt + g_cnt
n_r = n - n_l
ones_l = left_ones + g_ones
ones_r = total_ones - ones_l
val = compute_diversity(n_l, n_r, ones_l, ones_r, n)
if val > best_val or (abs(val - best_val) < 1e-12 and X < best_t):
best_val = val
best_t = X
left_cnt += g_cnt
left_ones += g_ones
# Случай t >= max(x) (правая часть пуста)
last_x = groups[-1][0]
t_candidate = last_x
n_l = n
n_r = 0
ones_l = total_ones
ones_r = 0
val = compute_diversity(n_l, n_r, ones_l, ones_r, n)
if val > best_val or (abs(val - best_val) < 1e-12 and last_x < best_t):
best_t = last_x
print(best_t)
if __name__ == "__main__":
main()