#include <iostream>
#include <algorithm>

using namespace std;

const int MAX_V = 1000;
const int LIMIT = 999999;

int d[MAX_V][MAX_V]; // コスト i==jのとき0, それ以外INF
int n, m; // 町, 街道

void warshall_floyd() {
  for(int k=0; k<m; k++)
    for(int i=0; i<m; i++)
      for(int j=0; j<m; j++)
	d[i][j]=min(d[i][j], d[i][k]+d[k][j]); // i-jの最短経路
}

int main() {
  int a, b;
  int start, hashira, givenMoney, cost;
  int ans;

  for(int i=0; i<MAX_V; i++) {
    for(int j=0; j<MAX_V; j++) {
      d[i][j]=LIMIT;
    }
  }

  cin>>n;
  cin>>m;
  for(int i=0; i<m; i++) {
    cin>>a;
    cin.ignore();
    cin>>b;
    cin.ignore();
    cin>>d[a][b];
    cin.ignore();
    cin>>d[b][a];
  }
  cin>>start;
  cin.ignore();
  cin>>hashira;
  cin.ignore();
  cin>>givenMoney;
  cin.ignore();
  cin>>cost;

  warshall_floyd();

  ans = givenMoney - cost - (d[start][hashira] + d[hashira][start]);
  cout<<ans<<endl;
}