import sys
import heapq
def solve():
# Быстрый ввод данных
input = sys.stdin.read
data = input().split()
if not data:
return
n = int(data[0])
q = int(data[1])
# Считываем начальные скоры кандидатов
a = [int(x) for x in data[2:2+n]]
# Превращаем список в min-heap за O(n)
heapq.heapify(a)
lazy_shift = 0
idx = 2 + n
output = []
# Поочередно обрабатываем q запросов
for _ in range(q):
type_action = int(data[idx])
if type_action == 1:
x = int(data[idx+1])
lazy_shift += x
idx += 2
else:
# Извлекаем минимальный элемент из кучи
min_val = heapq.heappop(a)
# Реальное значение с учетом всех прошлых прибавок
output.append(str(min_val + lazy_shift))
idx += 1
# Выводим результат
sys.stdout.write('\n'.join(output) + '\n')
if __name__ == '__main__':
solve()