#include <iostream>
#include <sstream>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <complex>
#include <cstdio>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <string>
#include <vector>
using namespace std;

int n,m,d[20][20],s,g,pr,pi;
const int INF=9999999;
char com;
struct road{int a,b,c,d;};
road r[400];

int main() {
    cin>>n>>m;
    for(int i=0;i<m;i++)cin>>r[i].a>>com>>r[i].b>>com>>r[i].c>>com>>r[i].d;
    cin>>s>>com>>g>>com>>pr>>com>>pi;
    for(int i=0;i<400;i++)d[i/20][i%20]=INF;
    for(int i=0;i<m;i++){
	d[r[i].a][r[i].b]=r[i].c;
	d[r[i].b][r[i].a]=r[i].d;
    }
    for(int i=0;i<m;i++)for(int j=0;j<m;j++)for(int k=0;k<m;k++)d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
    cout<<pr-pi-d[s][g]-d[g][s]<<endl;
}