#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define endl '\n'
#define ll long long
using namespace std;
using namespace __gnu_pbds;
const int N = 3005;
int n,m,k,ans[N+3],ar[N+3],col[N+3];
vector<int>vec[N+3];
bool sol(int cur){
col[cur] = 1;
for(auto nx : vec[cur]){
if(col[nx] == 0){
if(!sol(nx)) return 0;
}
else if(col[nx] == 1){
return 0;
}
}
col[cur] = 2;
return 1;
}
bool ch(int l,int mid){
for(int i=1;i<=n;i++){
if(vec[i].size())vec[i].clear();
col[i]=0;
}
for(int i=l;i<=mid;i++){
if((i-l+1)%2==1){
vec[ar[i+1]].emplace_back(ar[i]);
}
else{
vec[ar[i]].emplace_back(ar[i+1]);
}
}
for(int i=1;i<=n;i++){
if(col[i]==0&&vec[i].size()){
if(!sol(i))return 0;
}
}
return 1;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
cin>>ar[i];
}
for(int i=1;i<=n;i++){
int l=i,r=n;
while(l<=r){
int mid=l+(r-l)/2;
if(ch(i,mid)){
ans[i]=mid;
l=mid+1;
}
else r=mid-1;
++ans[i];
}
}
while(k--){
int l,r;cin>>l>>r;
if(r<ans[l]){
cout<<"YES";
}
else cout<<"NO";
cout<<endl;
}
// cout<<endl;
// for(int i=1;i<=n;i++){
// cout<<i<<" "<<ans[i]<<endl;
// }
return 0;
}
/*
6 3 3
1 1 2 3 1 2
1 2
2 5
2 6
*/