恩赐
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

天,要塌了。zhu_yin 作为上神,他赐予了凡间 n 根柱子用来顶住塌陷的天,其中第 i 根柱子的高度为 a_i

为了能让天更高些,zhu_yin 决定再撒下 m 次恩泽1,恩泽将依次发挥作用,第 j 次恩泽只能作用在高度小于 k_j 的柱子上,若不存在这样的柱子,恩泽将不会生效,否则恩泽之灵会自己找到能力范围内最高的柱子,然后将其升高 h_j。无论生效与否,第 j 次恩泽会在下一次恩泽生效之前消散2

高傲的上神 zhu_yin 懒得去慢慢看恩泽生效的过程,他想直接知道所有的恩泽消散后,最高的柱子的高度?

名词解释

恩泽1:恩泽指的是一种可以使柱子升高的法术,当恩泽能作用在多个柱子上的时候,它仅会作用在其中最高的一根的柱子上。当恩泽在作用范围内找不到柱子时,这个恩泽直接失效。若恩泽的生效范围内有可以生效的柱子,则一定会有柱子升高。

恩泽消散2:当恩泽成功使得一根柱子升高后,当前恩泽消失。当恩泽无法使得任何柱子升高时,恩泽直接消失。当且仅当前一个恩泽消失后,下一个恩泽才会开始生效。柱子升高后永久生效,不会降低。


输入描述:

第一行两个正整数  分别表示柱子和恩泽的数量。

第二行 n 个用空格分开的整数,第 i 个表示柱子的初始高度

接下来 m 行,每行两个用空格分开的整数,表示第 j 个恩泽的作用范围 和作用效果

输出描述:

一行一个整数,表示最高的柱子的高度。
示例1

输入

复制
5 1
5 3 2 3 1
5 2

输出

复制
5