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

        ll hi = maxL, lo = 0;
        //cout << "hi: " << hi << " lo: " << lo << endl;
        while (hi - lo > 1) {
            ll 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;
}