#include <bits/stdc++.h>
using namespace std;

const int N = 200005;
long long a[N], pref[N];
int n, q;
long long k;

// Sparse Table
int st[20][N];
int lg[N];

void build() {
    for (int i = 1; i <= n; i++) st[0][i] = a[i];

    for (int j = 1; (1 << j) <= n; j++) {
        for (int i = 1; i + (1 << j) - 1 <= n; i++) {
            st[j][i] = max(st[j-1][i], st[j-1][i + (1 << (j-1))]);
        }
    }

    for (int i = 2; i <= n; i++) lg[i] = lg[i/2] + 1;
}

int get_max(int l, int r) {
    int j = lg[r - l + 1];
    return max(st[j][l], st[j][r - (1 << j) + 1]);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n >> k >> q;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        pref[i] = pref[i-1] + a[i];
    }

    build();

    while (q--) {
        int l, r;
        cin >> l >> r;

        long long M = get_max(l, r);
        long long sum = pref[r] - pref[l-1];
        long long len = r - l + 1;

        long long cost = len * M - sum;

        if (cost <= k) cout << "YES\n";
        else cout << "NO\n";
    }
}
