#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

#define INF 1000000

int n, m;
int cost[32][32];
int x1, x2, y1, y2;

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

void input() {
	int a, b, c, d;

	cin >> n >> m;
	for(int i = 0; i < m; i++) {
		scanf("%d,%d,%d,%d", &a, &b, &c, &d);
		cost[a - 1][b - 1] = c;
		cost[b - 1][a - 1] = d;
	}
	
	scanf("%d,%d,%d,%d", &x1, &x2, &y1, &y2);
}

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

int solve() {
	warshall_floyd();
	return y1 - (y2 + cost[x1 - 1][x2 - 1] + cost[x2 - 1][x1 - 1]);
}

int main() {
	init();
	input();
	cout << solve() << endl;
}