import sys
n, m = map(int, sys.stdin.readline().split())
powerList = []
nameList = []
# power와 name 따로 저장
for _ in range(n):
name, power = sys.stdin.readline().split()
power = int(power)
if powerList and powerList[-1] == power: # 비내림차순이므로 index -1로 중복 검사
continue
else:
powerList.append(power)
nameList.append(name)
# 이진 탐색
for _ in range(m):
p = int(sys.stdin.readline())
start, end = 0, len(powerList) - 1
while start <= end:
mid = (start + end) // 2
if (p <= powerList[mid]):
end = mid - 1
else:
start = mid + 1
print(nameList[end+1]) # nameList[start]와 동일
그럼 항상 end + 1 == start
인 건가~~?