#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3fffffff;
const long long _INF = 0x7ffffffffffffffll;
const double EPS = 1e-9;
const double PI = acos(-1.0);
template <class T, class INT>
inline T pow(T x, INT y) {
  T res(1);
  for (T tt(x); y; y /= 2) {
    if (y & 1) res *= tt;
    tt *= tt;
  }
  return res;
}
template <class T, class INT>
inline T pow(T x, INT y, T p) {
  T res(1);
  for (T tt(x); y; y /= 2) {
    if (y & 1) res = res * tt % p;
    tt = tt * tt % p;
  }
  return res;
}
int toInt(string s) {
  int x = 0;
  istringstream sin(s);
  sin >> x;
  return x;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
template <class INT>
inline INT gcd(INT x, INT y) {
  return y ? gcd(y, x % y) : x;
}
template <class INT>
inline int calc_bits(INT x) {
  return x ? (x & 1) + calc_bits(x >> 1) : 0;
}
const int MAXP = 200000 + 1;
const int MAXN = 500 + 1;
int n, m, b[MAXP], c[MAXP], d[MAXN];
bool nim;
pair<int, int> a[MAXN];
inline int dis(pair<int, int> a, pair<int, int> b) {
  return abs(a.first - b.first) + abs(a.second - b.second);
}
bool check(int* p) {
  for (int i = 0; i < n; i += 2) {
    int j = (i - 1 + n) % n, k = (i + 1) % n;
    if (p[dis(a[i], a[j]) + dis(a[i], a[k])]-- == 0) return false;
  }
  return true;
}
void prt(int x) {
  cout << "YES" << endl;
  if (x) cout << "-1 ";
  for (int i = 0; i < n; i += 2) {
    int j = (i - 1 + n) % n, k = (i + 1) % n;
    int l = dis(a[i], a[j]) + dis(a[i], a[k]);
    for (int t = 0; t < (m); ++t)
      if (d[t] == l) {
        cout << t + 1;
        if (i != n - 2) cout << " -1 ";
        d[t] = -1;
        break;
      }
  }
  if (!x) cout << " -1";
  cout << endl;
  exit(0);
}
int main(int argc, char* argv[]) {
  cin >> n >> m;
  for (int i = 0; i < (n); ++i) cin >> a[i].first >> a[i].second;
  for (int i = 0; i < (m); ++i) cin >> d[i], ++b[d[i]], ++c[d[i]];
  for (int i = 0; i < (n); ++i) {
    int j = i ? i - 1 : n - 1;
    if (a[i].first != a[j].first && a[i].second != a[j].second) nim = true;
  }
  if (nim) {
    cout << "NO" << endl;
    return 0;
  }
  if (check(b)) prt(0);
  rotate(a, a + 1, a + n);
  if (check(c)) prt(1);
  cout << "NO" << endl;
}
