#include <bits/stdc++.h>
using namespace std;

int main(int argc, char **argv) {
#ifndef ONLINE_JUDGE
	freopen("a.in", "r", stdin);
#endif
	int n, m;
	cin >> n >> m;
	vector<pair<long long, long long> > arr(n);
	for (int i = 0; i < n; ++i)
		cin >> arr[i].first >> arr[i].second;
	vector<pair<long long, long long> > diff;
	for (int i = 1; i < n; ++i) {
		diff.push_back(
				make_pair(arr[i].first - arr[i - 1].second,
						arr[i].second - arr[i - 1].first));
	}
	vector<pair<long long, int> > lst(m);
	for (int i = 0; i < m; ++i)
		cin >> lst[i].first, lst[i].second = i + 1;
	sort(lst.begin(), lst.end());
	vector<int> ans;
	for (int i = 0; i < diff.size(); ++i) {
		int l = 0, r = lst.size() - 1;
		int best = -1;
		while (l <= r) {
			int mid = (l + r) / 2;
			if (lst[mid].first >= diff[i].first
					&& lst[mid].first <= diff[i].second) {
				best = mid;
				l = mid + 1;
			} else {
				r = mid - 1;
			}
		}
		if (best == -1) {
			cout << "No";
			return 0;
		}
		ans.push_back(lst[best].second);
		lst.erase(lst.begin() + best);
	}
	cout << "Yes\n";
	copy(ans.begin(),ans.end(),ostream_iterator<int>(cout," "));

	return 0;
}
