#include<bits/stdc++.h>
using namespace std;
int a[8010][8010];
struct node1{
int x,id;
}s[8010];
int f[8010];int n,p,r,ans=0;
bool cmp(node1 a,node1 b){
return a.x<b.x;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
f[i]=1;
}
cin>>p;
for(int i=1;i<=p;i++){
cin>>s[i].id>>s[i].x;
}
sort(s+1,s+p+1,cmp);
cin>>r;
for(int i=1;i<=r;i++){
int x,y;
cin>>x>>y;
a[x][y]=1;
}
int cnt=0;
for(int i=1;i<=p&&cnt!=n;i++){
int z=s[i].id;
if(f[z]!=0){
ans+=s[i].x;
f[z]=0;
int g=0;
while(g==0){
for(int j=1;j<=n;j++){
g=1;
if(a[z][j]==1&&f[j]!=0){
f[j]=0;
z=j;
g=0;
cnt++;
break;
}
}
}
}
}
for(int i=1;i<=n;i++){
if(f[i]==1){
cout<<"NO\n";
cout<<i<<"\n";
return 0;
}
}
cout<<"YES\n";
cout<<ans<<"\n";
return 0;
}