不用二分,用空间换时间
//超级容易理解
#include<bits/stdc++.h>
using namespace std;
int n, k;
struct node{
int st = -1;
int ed = -1;
}a[10010];
int main(){
scanf("%d%d", &n, &k);
int p1 = -1;
for(int i = 0; i < n; i++){
int x;
scanf("%d", &x);
if(x != p1 && p1 == -1){
a[x].st = i;
}else if(x != p1){
a[p1].ed = i - 1;
a[x].st = i;
}
if(i == n-1){
a[x].ed = n - 1;
}
p1 = x;
}
for(int i = 0; i < k; i++){
int x;
scanf("%d", &x);
printf("%d %d\n", a[x].st, a[x].ed);
}
}