#include<bits/stdc++.h>
#define LL long long
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
using namespace std;
const int N=100005;
int n,m,fa[N],A[N],B[N],C[N],id[N];bool pd[N];LL sum[N],f[N];
int pp,lnk[N],nxt[N*2],to[N*2];
void ae(int k1,int k2){to[++pp]=k2,nxt[pp]=lnk[k1],lnk[k1]=pp;}
int fd(int k1){return fa[k1]==k1?k1:fa[k1]=fd(fa[k1]);}
bool cmp(int k1,int k2){return C[k1]<C[k2];}
int main(){
	scanf("%d%d",&n,&m);
	rep(i,1,n)scanf("%d%d",&A[i],&B[i]),C[i]=max(A[i]-B[i],0),sum[i]=B[i];
	rep(i,1,m){
		int k1,k2;scanf("%d%d",&k1,&k2);
		ae(k1,k2),ae(k2,k1);
	}
	rep(i,1,n)fa[i]=i,id[i]=i;
	sort(id+1,id+1+n,cmp);
	rep(_,1,n){
		int k1=id[_];
		pd[k1]=1;LL c=C[k1];
		for(int i=lnk[k1];i;i=nxt[i])if(pd[to[i]]){
			int k2=fd(to[i]);if(k2==k1)continue;
			fa[k2]=k1,sum[k1]+=sum[k2],c=min(c,max((LL)C[k1],f[k2])-sum[k2]);
		}
		f[k1]=sum[k1]+c;
//		fprintf(stderr,"f[%d]=%lld\n",k1,f[k1]);
	}
	printf("%lld\n",f[fd(1)]);
	return 0;
}