#include using namespace std; double dist(long long x,long long y,long long x1,long long y1) { x-=x1; y-=y1; double c=x*x+y*y; return sqrt(c); } int main() { freopen("runners.in","r",stdin); freopen("runners.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n,k; cin>>n>>k; if(k<=1000) { double s[k+1]; for(int i=1; i<=k; i++)cin>>s[i]; paircurind[k+1]; for(int i=1; i<=k; i++)curind[i]= {-1,-1}; vectorans(n); pairbeg[k+1]; for(int i=0; i>x>>y; double minans=1e14; int minind=-1; for(int j=1; j<=k; j++) { if(curind[j].first==-1 && (minind==-1 || s[minind]0)) { minans=0; minind=j; break; } else if(curind[j].first!=-1 && dist(curind[j].first,curind[j].second,x,y)*s[j]>s[i]; int cnt=sqrt(k); pairfirst[k+1]; int ans[n]; for(int i=1; i<=k; i++)first[i]= {-1,-1}; vectorextra; vectorused(k+1,0); int num=(1000000000+cnt-1)/cnt; vector >what; for(int i=0; i>x>>y; what.push_back({x,y}); int cur=1+cnt*(x/num)+(y/num); if(used[cur]==0) { used[cur]=1; first[cur]= {x,y}; ans[i]=cur; } else {extra.push_back(i);ans[i]=cur;} } for(int i=1; i<=k; i++) { if(first[i].first<=0) { if(extra.size()>0) { int ind=extra.back(); extra.pop_back(); ans[ind]=i; cout<