#include<stdio.h>
#include<string>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<vector>
#include<algorithm>
#include<numeric>
#include<string.h>
#include<map>

using namespace std;

typedef pair<int,int> pii;

#define rep(i,j) for(int i=0;i<(j);i++)
#define reps(i,j,k) for(int i=j;i<=k;i++)

struct e{
	int f,t,c;
};

int main(){
	int n,m,x[2],y1,y2,a,b,c,d,cost;
	int di[20];
	e l[800];
	const int inf = 9999999;
	scanf("%d%d",&n,&m);
	rep(i,m){
		scanf("%d,%d,%d,%d",&a,&b,&c,&d);
		a--;
		b--;
		l[i*2].f=l[i*2+1].t=a;
		l[i*2].t=l[i*2+1].f=b;
		l[i*2].c=c;
		l[i*2+1].c=d;
	}
	scanf("%d,%d,%d,%d",x,x+1,&y1,&y2);
	cost=0;
	rep(i,2){
		rep(j,n)di[j]=inf;
		di[x[i]-1]=0;
		int f=1;
		while(f){
			f=0;
			rep(j,m*2){
				e t=l[j];
				if(di[t.f]<inf && di[t.t]>di[t.f]+t.c){
					di[t.t]=di[t.f]+t.c;
					f=1;
				}
			}
		}
		cost+=di[x[1-i]-1];
	}
	printf("%d\n",y1-y2-cost);
	return 0;
}