题目描述
给定一个长度为 n 的序列,有 m 个询问,每次询问区间 [l,r] 是否为 1 到 r − l + 1 的一个排列。n, m ≤ 10^6。
输入格式
多组测试用例(约3组)。
第一行包含两个整数n和m(1≤n ,m≤1000000),表示 每个序列中数字的个数n和查询数量m。
第二行包含 n 个以空格分隔的数字(1 ≤ai≤ n) 。
接下来的 m 行描述了查询。每行有两个数字 l 和 r,用空格分隔(1≤l≤r≤ n),表示查询范围。
输出格式
对于每个查询,如果存在一个排列[ 1.. r−l+ 1 ]在[l, r]区间,输出‘YES’,否则输出‘NO’。
样例数据
input
8 5
2 1 3 4 5 2 3 1
1 3
1 1
2 2
4 8
1 5
3 2
1 1 1
1 1
1 2
output
YES
NO
YES
YES
YES
YES
NO