import std.algorithm, std.container, std.conv, std.math, std.range, std.typecons, std.stdio, std.string;

auto rdsp(){return readln.splitter;}
void pick(R,T)(ref R r,ref T t){t=r.front.to!T;r.popFront;}
void readV(T...)(ref T t){auto r=rdsp;foreach(ref v;t)pick(r,v);}
void readC(T...)(size_t n,ref T t){foreach(ref v;t)v=new typeof(v)(n);foreach(i;0..n){auto r=rdsp;foreach(ref v;t)pick(r,v[i]);}}

void main()
{
  int n, m; readV(n, m);
  int[] a, b; readC(n, a, b);
  int[] c, d; readC(m, c, d);

  foreach (i; 0..n) {
    auto x = 0, yi = int.max;
    foreach (j; 0..m) {
      auto y = (a[i]-c[j]).abs + (b[i]-d[j]).abs;
      if (y < yi) {
        yi = y;
        x = j;
      }
    }
    writeln(x+1);
  }
}
