#include <bits/stdc++.h>
using namespace std;
int xx[600], yy[600];
int leng[600];
int used[600];
int n, m;
int ok(int d) {
  for (int i = 0; i < m; i++)
    if (leng[i] == d && !used[i]) {
      used[i] = 1;
      return i;
    }
  return -1;
}
int main() {
  n = ({
    int t;
    scanf("%d", &t);
    t;
  }),
  m = ({
    int t;
    scanf("%d", &t);
    t;
  });
  for (int i = 0; i < n; i++)
    xx[i] = ({
      int t;
      scanf("%d", &t);
      t;
    }),
    yy[i] = ({
      int t;
      scanf("%d", &t);
      t;
    });
  for (int i = 0; i < m; i++)
    leng[i] = ({
      int t;
      scanf("%d", &t);
      t;
    });
  vector<int> ans;
  bool ispossible = true;
  for (int i = 1; i < n; i += 2) {
    if (!(xx[i] == xx[i - 1] || yy[i] == yy[i - 1])) {
      ispossible = false;
      break;
    }
    if (!(xx[i] == xx[(i + 1) % n] || yy[i] == yy[(i + 1) % n])) {
      ispossible = false;
      break;
    }
    int d = abs(xx[i] - xx[i - 1]) + abs(yy[i] - yy[i - 1]) +
            abs(xx[i] - xx[(i + 1) % n]) + abs(yy[i] - yy[(i + 1) % n]);
    int inx = ok(d);
    if (inx == -1) {
      ispossible = false;
      break;
    }
    ans.push_back(-1);
    ans.push_back(inx + 1);
  }
  if (ispossible) {
    assert(n == (int)(ans.size()));
    printf("YES\n");
    for (int i = 0; i < n; i++) printf("%d ", ans[i]);
    printf("\n");
  } else {
    ispossible = true;
    ans.clear();
    for (int i = 0; i < m; i++) used[i] = 0;
    for (int i = 0; i < n - 1; i += 2) {
      if (!(xx[i] == xx[(n + i - 1) % n] || yy[i] == yy[(n + i - 1) % n])) {
        ispossible = false;
        break;
      }
      if (!(xx[i] == xx[i + 1] || yy[i] == yy[i + 1])) {
        ispossible = false;
        break;
      }
      int d = abs(xx[i] - xx[(n + i - 1) % n]) +
              abs(yy[i] - yy[(n + i - 1) % n]) + abs(xx[i] - xx[(i + 1) % n]) +
              abs(yy[i] - yy[(i + 1) % n]);
      int inx = ok(d);
      if (inx == -1) {
        ispossible = false;
        break;
      }
      ans.push_back(inx + 1);
      ans.push_back(-1);
    }
    if (ispossible) {
      assert(n == (int)(ans.size()));
      printf("YES\n");
      for (int i = 0; i < n; i++) printf("%d ", ans[i]);
      printf("\n");
    } else
      printf("NO\n");
  }
  return 0;
}
