#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  vector<pair<long long int, long long int> > a(n);
  vector<pair<pair<long long int, long long int>, long long int> > u;
  set<pair<long long int, long long int> > b;
  for (int i = 0; i < n; i++) {
    cin >> a[i].first >> a[i].second;
  }
  for (int i = 0; i < m; i++) {
    long long int len;
    cin >> len;
    b.insert({len, i + 1});
  }
  sort(a.begin(), a.end());
  for (int i = 1; i < n; i++) {
    long long int low = a[i].first - a[i - 1].second;
    long long int top = a[i].second - a[i - 1].first;
    u.push_back({{top, low}, i});
  }
  sort(u.begin(), u.end());
  vector<int> ans(n);
  for (size_t i = 0; i < u.size(); i++) {
    set<pair<long long int, long long int> >::iterator t =
        b.lower_bound({u[i].first.second, 0});
    if (t == b.end() || t->first > u[i].first.first) return puts("No"), 0;
    ans[u[i].second] = t->second;
    b.erase(t);
  }
  puts("Yes");
  for (int i = 1; i < n; i++) {
    cout << ans[i] << " ";
  }
  cout << '\n';
}
