#include<bits/stdc++.h>
using namespace std;
int main() {
    int n, q, prev = -100; vector<int> v; int temp;
    cin >> n >> q;
    for(int i = 0; i < n; i++) {
        cin >> temp;
        if(temp < prev) {v.push_back(i);}
        prev = temp;
    }
    //cout << "AAAA"; for (auto i : v) {cout << i << " ";} cout << endl;
    int a, b, maxL = v.size();
    int centerGlobal = maxL/2, center; //-1????
    //cout << v.size() << " " << centerGlobal << endl;
    for(int i = 0; i < q; i++) {
        cin >> a >> b; a--; b--;

        int hi = maxL, lo = 0;
        //cout << "hi: " << hi << " lo: " << lo << endl;
        while (hi - lo > 1) {
            int mid = (hi + lo)/2;
            if (v[mid] > a) hi = mid;
            else lo = mid;

            //cout << "Center is: " << mid << "lo is: " << lo << "hi is: " << hi << endl;
        }

        //cout << lo << endl;
        if (v[lo] <= b && maxL == lo+1) cout << "YES\n" << endl;
        else {
            if (v[lo] <= b) cout << "NO\n";
            else cout << "YES\n";
        }

        // binary search
        /*while (1) {
            cout << "Now center is " << center << " and b=" << b << " and a=" << a << "and maxL=" << maxL << endl;

            //if (center >= a || center <= b) {cout << "YES\n"; break;}
            //if (center == 0 || center == maxL) {cout << "NO\n"; break;}
            //if (center > b) {center += center / 2 + 1;} // +1???
            //if (center < a) {center = center / 2;}
        }*/
    }
    return 0;
}