#include <iostream>
#include <string.h>
using namespace std;
#define REP(i,n) for(i=1;i<=n;i++)

int n,x1,x2,y1,y2;
int cost[22][22]={0},map[22]={0},mark[22]={0};

int d(int s,int end){
	int i;
	mark[s]=1;
	memset(map,0,sizeof(map));
	memset(mark,0,sizeof(mark));
	while(!mark[end]){
		for(i=1;i<=n;i++)
			if(!cost[s][i])continue;
			else if(!map[i] || map[i] > cost[s][i] + map[s]){
			map[i] = cost[s][i] + map[s];
		}
		int mini=-1;
		for(i=1;i<=n;i++)
			if(!mark[i] && map[i] && (mini<0 || map[mini] > map[i])) mini = i;
		mark[mini]=1;
		s=mini;
	}
	return map[end];
}

int main(){
	int i,j,m,s;
	char cc;
	cin>>n>>m;
	for(i=0;i<m;i++){
		int a,b,c,d;
		cin>>a>>cc>>b>>cc>>c>>cc>>d;
		cost[a][b]=c;cost[b][a]=d;
	}
	cin>>x1>>cc>>x2>>cc>>y1>>cc>>y2;
	cout << y1-y2-d(x1,x2)-d(x2,x1) << endl;
}