//todo 段错误 天勤 1056 Mice and Rice P262下
#include <iostream>
#include <queue>
using namespace std;
struct mouse{
int weight;
int r;
};
int main(){
int NP,NG,order;
mouse mouses[1010];
cin>>NP>>NG;
for(int i=0;i<NP;i++){
cin>>mouses[i].weight;
}
queue<int> q;
for(int i=0;i<NP;i++){
cin>>order;
q.push(order);
}
int temp = NP,group;
while(q.size() != 1){
if(temp % NG ==0) group = temp/NG;
else group = temp/NG +1;
for(int i=0;i<group;i++){
int k = q.front();
for(int j=0;j<NG;++j){
if(i*NG + j > temp) break;
int front = q.front();
if(mouses[front].weight > mouses[k].weight) k =front;
mouses[front].r = group +1;
q.pop();
}
q.push(k);
}
temp = group;
}
mouses[q.front()].r = 1;
for(int i=0;i<NP;i++){
cout<<mouses[i].r;
if(i<NP-1) cout<<" ";
}
return 0;
}