Метро

Сложность: 59%

В столице Берляндии построили первую линию метро. Линия содержит n+1n + 1 станцию и nn перегонов между ними, ii-й перегон соединяет станции с номерами ii и i+1i + 1 и стоимость проезда по нему равна cic_i.

Перед полным открытием метро правительство Берляднии планирует сделать mm тестовых запусков метро. В ii-м запуске будут открыты станции, номера которых не меньше lil_i и не больше rir_i, а также все перегоны между этими станциями. В каждом тестовом запуске метро для каждой пары станций с номерами aa и bb, таких что a<ba < b, будет пущен поезд из станции aa в станцию bb, с остановками на всех промежуточных станциях. Например если всего в метро 5 станций и во время тестового запуска будет открыты станции между 2 и 4, то будет пущен поезд со станции 2 на станцию 3, со станции 3 на станцию 4 и со станции 2 на станцию 4 с промежуточной остановкой на станции 3. Чтобы показать доступность метро, правительство Берляндии для каждого тестового запуска выбирает число kik_i и считает kik_i-й минимальный по стоимости проезда перегон среди открытых перегонов в ii-й день, при этом каждый перегон учитывается столько раз, сколько поездов по нему проезжает. Другими словами, правительство Берляднии хочет выписать стоимость проезда по каждому перегону столько раз, сколько поездов по нему проехало, после чего отсортировать полученныймассив по возрастанию и найти в нём kik_i-е число. Помогите правительству Берляндии найти такой перегон для каждого из тестовых запусков.

Входные данные

В первой строке вводятся два целых числа nn и mm (1n,m3000001 ⩽ n, m ⩽ 300 000) — число перегонов и число тестовых запусков метро.

В следующей строке вводятся nn чисел c1,c2,c3,...,cn(1ci500000)c_1, c_2, c_3, . . . , c_n (1 ⩽ c_i ⩽ 500 000) — стоимости проезда по перегонам метро.

Следующие mm строк описывают тестовые запуски. В ii-й строке вводятся три целых числа li,ril_i, r_i и kik_i (1li<rin+1,1ki16(rili)(rili+1)(rili+2)1 ⩽ li < r_i ⩽ n + 1, 1 ⩽ k_i ⩽ \frac{1}{6} (r_i − l_i)(r_i − l_i + 1)(r_i − l_i + 2)) — первая открытая станция, последняя открытая станция и какой по стоимости перегон надо найти.

Выходные данные

Для каждого тестового запуска в отдельной строке выведите стоимость kik_i-го минимального по стоимости перегона среди всех открытых перегонов в ii-й день, при этом учитывая каждый перегон столько раз, сколько поездов по нему проезжают в ii-й тестовый запуск.

Система оценки

Каждый тест в каждой группе оценивается в 5 баллов.

Подзадачи

баллынеобх. подзадачиограничения
1

5

-

n10,m100,ci10n ⩽ 10, m ⩽ 100, c_i ⩽ 10

2

10

1

n100,m100,ci100n ⩽ 100, m ⩽ 100, c_i ⩽ 100

3

10

2

n100,ci100n ⩽ 100, c_i ⩽ 100

4

10

3

n500,m500,ci500n ⩽ 500, m ⩽ 500, c_i ⩽ 500

5

10

4

n10000,m10000,ci10000n ⩽ 10 000, m ⩽ 10 000, c_i ⩽ 10 000

6

10

1

n100000,m100000,ci30n ⩽ 100 000, m ⩽ 100 000, c_i ⩽ 30

7

15

5, 6

n100000,m100000n ⩽ 100 000, m ⩽ 100 000

8

10

-

ci2c_i ⩽ 2

9

10

8

ci500,ki500c_i ⩽ 500, k_i ⩽ 500

10

10

5, 6, 9

Нет дополнительных ограничений

STDINSTDOUT
5 6
1 2 3 2 3
1 3 2
1 4 7
3 6 4
1 6 35
2 5 7
2 6 10
1
2
2
3
3
2