#include <bits/stdc++.h>
using namespace std;
#pragma warning(disable : 4996)
int q, q1, a[500], s[500], d[500], f[500], ans[500];
int abs(int w) {
  if (w < 0) w = -w;
  return w;
}
int l(int e, int r) { return abs(a[e] - a[r]) + abs(s[e] - s[r]); }
bool slv() {
  int w, e, r, t;
  for (w = 0; w < q; w += 2) {
    ans[w + 1] = -2;
    e = (w - 1 + q) % q;
    r = (w + 1) % q;
    t = l(e, w) + l(w, r);
    for (e = 0; e < q1; e++)
      if ((d[e] == t) && (f[e])) break;
    if (e == q1) return 0;
    ans[w] = e;
    f[e] = 0;
  }
  return 1;
}
int main() {
  int w, e, r, t, y;
  scanf("%d%d", &q, &w);
  q1 = w;
  for (e = 0; e < q; e++) scanf("%d%d", &a[e], &s[e]);
  for (e = 0; e < w; e++) {
    scanf("%d", &d[e]);
    f[e] = 1;
  }
  if (slv()) {
    printf("YES\n");
    for (e = 0; e < q; e++) printf("%d ", ans[e] + 1);
    return 0;
  }
  t = a[q - 1];
  y = s[q - 1];
  for (e = q - 1; e > 0; e--) {
    a[e] = a[e - 1];
    s[e] = s[e - 1];
  }
  a[0] = t;
  s[0] = y;
  if (slv()) {
    printf("YES\n");
    for (e = 1; e < q; e++) printf("%d ", ans[e] + 1);
    printf("%d ", ans[0] + 1);
  } else
    printf("NO");
  return 0;
}
