#include <iostream>
#include <cstdio>
using namespace std;
int N=0;
int M, A, B, C, D, x1, x2, y1, y2;
int K[32][32];
const int inf = 1001001001;
int s,g,V,P;
void Floyd_Warshall(){
    for(int k=1;k<=N;k++){
        for(int i=1;i<=N;i++){
            for(int j=1;j<=N;j++){
                if(K[i][j]>K[i][k]+K[k][j]){
                    K[i][j]=K[i][k]+K[k][j];
                }
            }
        }
    }
}
void init_K(){
    for(int i=0;i<=N;i++){
        for(int j=0;j<=N;j++){
            K[i][j]=inf;
        }
    }
}
int main() {
    scanf("%d%d", &N, &M);
    init_K();
    for (int i=0; i<M; ++i) {
        scanf("%d,%d,%d,%d", &A, &B, &C, &D);
        K[A][B]=C;
        K[B][A]=D;
    }
    scanf("%d,%d,%d,%d", &s, &g,&V,&P);
    Floyd_Warshall();
    int sum=V-P-K[s][g]-K[g][s];
    cout<<sum<<endl;
    return 0;
}

