#include <bits/stdc++.h>
using namespace std;
int n,m;
int place[21][21];
int road[21][21];
int co[21][21];
int maxnum[21],minnum[21];
int serch(int start,int finish,int money,int go,int now)
{
    if(money<0)return 0;
    if(go==1&&start==now)return money;
    if(finish==now)go=1;
    int ans=0;
    for(int i=minnum[now];i<=maxnum[now];i++){
        if(place[now][i]>-1&&co[now][i]<2){
            co[now][i]++;
            ans=max(ans,serch(start,finish,money-place[now][i],go,i,now));
            co[now][i]--;
        }
    }
    return ans;
}
int main() {
    cin>>n>>m;
    char a;
    memset(place,-1,sizeof(place));
    for(int i=1;i<21;i++)minnum[i]=22;
    for(int i=0,num[4];i<m;i++){
        for(int j=0;j<3;j++)cin>>num[j]>>a;
        cin>>num[3];
        place[num[0]][num[1]]=num[2];
        place[num[1]][num[0]]=num[3];
        maxnum[num[0]]=max(maxnum[num[0]],num[1]);
	    maxnum[num[1]]=max(maxnum[num[1]],num[0]);
	    minnum[num[0]]=min(minnum[num[0]],num[1]);
	    minnum[num[1]]=min(minnum[num[1]],num[0]);
    }
    int get[4];
    for(int i=0;i<3;i++)cin>>get[i]>>a;
    cin>>get[3];
    cout<<serch(get[0],get[1],get[2]-get[3],0,get[0])<<endl;
}