#include <bits/stdc++.h>
using namespace std;
int n,m;
int place[22][22][2];
bool road[22][22];
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=1;i<=n;i++)if(road[now][i])ans=max(ans,serch(start,finish,money-place[now][i][go],go,i));
	for(int i=1;i<=n;i++)if(road[i][now])ans=max(ans,serch(start,finish,money-place[i][now][go],go,i));
	return ans;
}
int main() {
	cin>>n>>m;
	for(int i=0,num[4];i<m;i++){
		char a;
		for(int j=0;j<3;j++)cin>>num[j]>>a;
		cin>>num[3];
		for(int j=0;j<2;j++)place[num[0]][num[1]][j]=num[2+j];
		road[num[0]][num[1]]=1;
	}
	int get[4];
	char a;
	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;
}