#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define M 1000000007
#define ff first.first
#define fs first.second
#define sf second.first
#define ss second.second
typedef pair<ll,ll> P;
typedef pair<P,P> PP;
int main(void)
{
	ll i,j,k,n,m,ma[21],flg[21],s,g,v,p,min,ri[21][21],sum;
	PP ga[101];
	scanf("%lld %lld",&n,&m);
	for(i=0;i<m;i++) scanf("%lld,%lld,%lld,%lld",&ga[i].ff,&ga[i].fs,&ga[i].ss,&ga[i].sf);
	scanf("%lld,%lld,%lld,%lld",&s,&g,&v,&p);
	sort(ma,ma+m);
	for(i=0;i<=n;i++) for(j=0;j<=n;j++) ri[i][j]=M;
	for(i=0;i<m;i++) ri[ga[i].ff][ga[i].fs]=ga[i].sf,ri[ga[i].fs][ga[i].ff]=ga[i].ss;
	for(i=0;i<n;i++){
		flg[i]=0;
		ma[i]=M;
	}
	ma[s]=0;
	for(i=1;i<=n;i++){
		min=M;
		for(j=1;j<=n;j++){
			if(flg[j]==0&&ma[j]<min) k=j,min=ma[j];
		}
		flg[k]=1;
		if(min==M) break;
		for(j=1;j<=n;j++){
			if((ma[k]+ri[k][j])<ma[j]) ma[j]=ma[k]+ri[k][j];
		}
	}
	for(i=1;i<=n;i++) printf("ma[i]=%d\n",ma[i]);
	sum=ma[g];
	printf("%d\n",sum);
	for(i=0;i<n;i++){
		flg[i]=0;
		ma[i]=M;
	}
	ma[g]=0;
	for(i=1;i<=n;i++){
		min=M;
		for(j=1;j<=n;j++){
			if(flg[j]==0&&ma[j]<min) k=j,min=ma[j];
		}
		flg[k]=1;
		if(min==M) break;
		for(j=1;j<=n;j++){
			if((ma[k]+ri[k][j])<ma[j]) ma[j]=ma[k]+ri[k][j];
		}
	}
	sum+=ma[s];
	printf("%d\n",v-p-sum);
	return 0;
}
