#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){
int n,k;
cin >> n >> k;
map<int,int> pre,end;
for(int i = 1; i <= n; i++){
int a;
cin >> a;
if(pre[a] == 0) pre[a] = i;//表示a第一次在i的位置出现
end[a] = i;//表示a的最后一次在i的位置上出现
}
while(k--){
int a,b;
cin >> a >> b;
a = pre[a],b = end[b];//a为a第一次出现的位置
if(a == 0 || b == 0){//b为a的最后一次出现的位置
cout << "NO" << '\n';
}//a或b未出现过
else if(a <= b){
cout << "YES" << '\n';
}//a在b之前出现
else cout << "NO" << '\n';
}//其它情况,如b在a之前出现
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int t;
cin >> t;
while(t--)
solve();
return 0;
}
map<int,int> pre,end表示创建了名称为pre和end的两个数组,其中值均为0,例如
pre[2] = 0,end[5] = 0。