#include <stdio.h>
#include <iostream>
#include <string.h>
#include <queue>
#include <algorithm>

using namespace std;

//A reward for a Carpenter
//???????????£???????????????

// 1???????????????????????°n???n???20??? 
// 2??????????????????????????°m 
// 3????????????1???????????????????????± a1, b1, c1, d1?????´??°;????§??????????????????????
//    a1, b1?????????????????????????????§?????????????????? 
//    c1 ???a1 ?????? b1 ??????????????? (0???1000)
//    d1 ???b1 ?????? a1 ??????????????? (0???1000)
// 4????????????2???????????????????????± a2, b2, c2, d2?????´??°;????§??????????????????????
//   : : 
//   : : 
// ???????????????x1, x2, y1, y2?????´??°;????§?????????????????????? 
// x1?????§??\??????????????????????????? 
// x2?????±??????????±±???????????? 
// y1???????§?????????§??\??????????????£????????? 
// y2?????±?????£???

int n, m;
int root[20][20];
int dp[20][20];

int s, g, y1, y2;
int INF = 9999999;

void print(){
	for(int i=0 ; i<n ; i++){
		for(int j=0 ; j<n ; j++){
			cout << root[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
}

void init(){
	for(int i=0 ; i<n ; i++){
		for(int j=0 ; j<n ; j++){
			root[i][j] = INF;
		}
	}
}


void WF(){

	for(int k=0 ; k<n ; k++){
		for(int i=0 ; i<n ; i++){
			for(int j=0 ; j<n ; j++){
				root[i][j] = min(root[i][j], root[i][k] + root[k][j]);
			}
		}
	}
}

int main(){

	cin >> n;
	cin >> m;

	init();

	for(int i=0 ; i<m ; i++){
		int a, b, c, d;
		scanf("%d,%d,%d,%d",&a,&b,&c,&d);
		a--;
		b--;

		root[a][b] = c;
		root[b][a] = d;
	}

	scanf("%d,%d,%d,%d", &s,&g,&y1,&y2);
	// cout << s << " " << g << endl;
	s--;
	g--;

	// print();

	WF();
	// print();

	cout << y1-y2-root[s][g]-root[g][s] << endl;


	return 0;
}