#include<bits/stdc++.h> using namespace std; struct node{ long long mi,ma,index; bool operator < (node a){ return mi<a.mi; } }; struct st{ long long value,id; st(){} st(long long x,long long y){ value=x; id=y; } bool operator <(const st& a)const { return value>a.value; } }; node dis[200004]; int ans[200005]; priority_queue<st>a; int main(){ freopen("1.txt","r",stdin); ios::sync_with_stdio(0); cin.tie(0); int n,m; long long l1,r1,l2,r2; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>l1>>r1; if(i!=1){ dis[i-1].mi=l1-r2; dis[i-1].ma=r1-l2; dis[i-1].index=i-1; } r2=r1; l2=l1; } for(int i=1;i<=m;i++){ long long x; cin>>x; a.push(st(x,i)); } sort(dis+1,dis+n); int i; for(i=1;i<n;i++){ while(a.top().value<dis[i].mi&&!a.empty()) a.pop(); if(a.empty()) break; if(a.top().value>dis[i].ma) break; ans[dis[i].index]=a.top().id; a.pop(); } if(i<n) {cout<<"No"<<endl;return 0;} cout<<"Yes"<<endl; for(int i=1;i<n;i++){ cout<<ans[i]; if(i!=n-1)cout<<' '; else cout<<endl; } }