import std.stdio;
import std.algorithm;
import std.string;
import std.functional;
import std.array;
import std.conv;
import std.math;
import std.typecons;
import std.regex;
import std.range;

void main(){

    int n = readln().chomp().to!int;
    int m = readln().chomp().to!int;
    int[21][21] map;
    for(int i=0;i<21;i++){
	for(int j=0;j<21;j++){
	    map[i][j] = 100000;
	}
    }
    for(int i=0;i<m;i++){
	auto s = readln().chomp().split(',').to!(int[]);
	map[s[0]][s[1]] = s[2];
	map[s[1]][s[0]] = s[3];
    }
    auto s = readln().chomp().split(',').to!(int[]);
    int pos = s[0];
    int goal = s[1];
    int mon = s[2];
    int pr = s[3];
    bool flg = true;

    while(flg){
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=n;j++){
		flg = false;
		for(int k=1;k<=n;k++){
		    if(map[i][j] > map[i][k] + map[k][j]){
			map[i][j] = map[i][k] + map[k][j];
			flg = true;
		    }
		}
	    }
	}
    }
    writeln( mon - pr - map[pos][goal] - map[goal][pos]);


}