import sys
bear_num, candy = sys.stdin.readline().strip().split()
bear_num, candy = int(bear_num), int(candy)
energy = [int(x) for x in sys.stdin.readline().strip().split()]
energy.sort()
bear = {}
for i in range(bear_num):
line = sys.stdin.readline().strip().split()
bear[i] = {
'power': int(line[0]),
'hungry': int(line[1]),
}
bear = dict(sorted(bear.items(), key=lambda item: item[1]['power'], reverse=True))
for v in bear.values():
hungry = v['hungry']
while energy != [] and hungry >= energy[0]:
i = -1
# 遍历寻找能量不超过hungry的最大饼干
while energy[i] > hungry and i > -len(energy):
i -= 1
hungry -= energy[i]
energy.pop(i)
v['hungry'] = hungry
# 最终输出需要按照小熊顺序输出
bear = dict(sorted(bear.items(), key=lambda item: item[0]))
for v in bear.values():
print(v['hungry'])