#include <bits/stdc++.h>
using namespace std;
const int N = 3005;
int n, k, q;
int a[N];
int mx[N];
// seen[u][v] = last timer where this pair was touched
// val[u][v] = required direction in current timer:
// 0 => u < v
// 1 => u > v
int seen[N][N];
unsigned char val[N][N];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> k >> q;
for (int i = 1; i <= n; i++) cin >> a[i];
int timer = 0;
for (int l = 1; l <= n; l++) {
timer++;
mx[l] = l;
for (int r = l + 1; r <= n; r++) {
int x = a[r - 1];
int y = a[r];
if (x == y) break;
int u = min(x, y);
int v = max(x, y);
// comparison between a[r-1] and a[r]:
// if (r-l) is odd => a[r-1] > a[r]
// else => a[r-1] < a[r]
//
// req = 0 means u < v
// req = 1 means u > v
int req = ((r - l) & 1) ^ (x > y);
if (seen[u][v] != timer) {
seen[u][v] = timer;
val[u][v] = req;
} else {
if (val[u][v] != req) break;
}
mx[l] = r;
}
}
while (q--) {
int l, r;
cin >> l >> r;
cout << (r <= mx[l] ? "YES\n" : "NO\n");
}
return 0;
}