#include <bits/stdc++.h>
#define N 1000020
using namespace std;
int a[N+1];
int main(){
int n = 0,m = 0;
bool flag = false;
int target = 0;
cin >> n >> m;
for(int i = 0;i < n;i++){
cin >> a[i];
}
for(int i = 0;i < m;i++){
cin >> target;
flag = false;
int left = 0,right = n - 1;
while(left < right){
int mid = (right - left) / 2 + left;
if(a[mid] == target){
right = mid;
flag = true;
}else if(a[mid] > target){
right = mid; // 为什么这里只能是right = mid, right = mid - 1为什么不行
}else{
left = mid + 1;
}
}
if(!flag){
cout << -1 << " ";
}else{
cout << left + 1 << " ";
}
}
system("pause");
return 0;
}
如果大了,就往左边搜索,那right = mid - 1为什么不可以嘞