import sys
sys.setrecursionlimit(99999899)
n,q = [int(x) for x in input().split()]
vec = []

prev = -10**6 - 1

line = map(int, input().split())

for i, cislo in enumerate(line):
	if prev > cislo:
		vec.append(i)
	prev = cislo

def evaluate(start, end, l, r):
	#print(f"eval({start},{end},{l},{r})")
	mid = (l + r )// 2	
	val = vec[mid]
	if l == r:
		return start < val and val < end
	if end <= val:
		return evaluate(start, end, l, mid )
	if start > val:
		return evaluate(start, end, mid + 1, r)

	return start <= val and val < end

#print(vec)

for i in range(q):
	start, end = map(int, input().split())
	res = evaluate(start, end, 0, len(vec) - 1)
	print("YES" if not res else "NO")
	


