题目描述
小 L经常被小 H怒斥:「滚!」
于是小 L滚了一圈,想到了一道题。
小 H曾经给过小 L一个长度为n的序列a1..n。
这给了小 L灵感,于是小 L自己再写出了一个长度为n的序列w1...n。
小 L假设小 H会问他m个问题,每一个问题是这样的:
小 H给出三个整数l,r,k,并设f(x)表示x在a序列的区间[l,r]内的出现次数,对于所有满足f(x)>0
且存在y使得0<f(y)<f(x)<=f(y)+k的x,求出wf(x)的最大值。
若不存在,请回答−1。
小 L希望你帮他回答他设想的这m个问题。
输入格式
第一行,两个正整数 n,m。(n,m≤2e5)
第二行,n个正整数 a1,a2,...,an。
第三行,n个非负整数 w1,w2,...,wn。
以下 m行,每行三个正整数 l,r,k。
输出格式
m行,每行一个整数,表示每个问题的答案。
样例
输入样例1
7 3
1 3 3 2 1 3 3
1 2 3 4 5 6 7
1 7 1
3 5 1
5 7 1
输出样例1
2
-1
2
输入样例2
10 3
1 2 3 3 2 3 3 2 4 4
1 1 4 5 1 4 1 9 1 9
2 6 1
3 9 3
1 10 1
输出样例2
4
5
5
提示
样例 #1:
对于第一个问题,当x=1时存在y=2满足条件,且wf(x)取最大值2。
对于第二个问题,不存在满足条件的x。
对于第三个问题,当x=3时存在y=1满足条件,且w(f(x))取最大值2。
样例 #2:
对于第一个问题,当x=3时存在y=2满足条件,且wf(x)取最大值4。
对于第二个问题,当x=3时存在y=2,4满足条件,且wf(x)取最大值5。
对于第三个问题,当x=3时存在y=2满足条件,且wf(x)取最大值5。