var n,x,y:integer;
m,dist,c,g,i,j:longint;
a,cautare,gasit:array[1..3,1..100024] of 0..20000000;
ok:boolean;
f,gg:text;
procedure relatii;
begin
c:=0;
for i:=1 to g-1 do
for j:=i+1 to g do begin
if gasit[1,i]<>gasit[1,j] then begin
if (gasit[1,j]<=gasit[2,i]) and (gasit[1,j]<>x) then begin
c:=c+1;
cautare[1,c]:=gasit[1,j];
cautare[2,c]:=gasit[2,i];
if cautare[3,c]=0 then cautare[3,c]:=gasit[3,i]+gasit[3,j]else cautare[3,c]:=cautare[3,c]-gasit[3,j];
end;
if (gasit[1,i]<=gasit[2,j]) and (gasit[1,i]<>x) then begin
c:=c+1;
cautare[1,c]:=gasit[1,i];
cautare[2,c]:=gasit[2,j];
if cautare[3,c]=0 then cautare[3,c]:=gasit[3,i]+gasit[3,j]else cautare[3,c]:=cautare[3,c]-gasit[3,j];
end;
if(gasit[2,i]<=gasit[1,j]) and (gasit[1,j]<>x) then begin
c:=c+1;
cautare[1,c]:=gasit[2,i];
cautare[2,c]:=gasit[1,j];
if cautare[3,c]=0 then cautare[3,c]:=gasit[3,i]+gasit[3,j]else cautare[3,c]:=cautare[3,c]-gasit[3,j];
end;
if (gasit[2,j]<=gasit[1,i]) and (gasit[1,i]<>x) then begin
c:=c+1;
cautare[1,c]:=gasit[2,j];
cautare[2,c]:=gasit[1,i];
if cautare[3,c]=0 then cautare[3,c]:=gasit[3,i]+gasit[3,j]else cautare[3,c]:=cautare[3,c]-gasit[3,j];
end;
if (gasit[1,c]=gasit[2,c]) and (gasit[1,i]<gasit[1,j]) then begin
c:=c+1;
cautare[1,c]:=gasit[1,i];
cautare[2,c]:=gasit[1,j];
end;
if (gasit[1,c]=gasit[2,c]) and (gasit[1,i]>gasit[1,j]) then begin
c:=c+1;
cautare[1,c]:=gasit[1,i];
cautare[2,c]:=gasit[1,j];
end;
end;
end;
end; {end la procedura }
begin
assign(f,'sate.in'); reset(f);
assign(gg,'sate.out'); rewrite(gg);
read(f,n,m,x,y);
for i:=1 to m do read(f,a[1,i],a[2,i],a[3,i]);
ok:=false;
cautare[1,1]:=x;
cautare[2,1]:=y;
c:=1; g:=0;
dist:=0;
while not ok do begin
g:=0;
for i:=1 to c do begin
for j:=1 to n do begin
if (a[1,j]=cautare[1,i]) and (a[2,j]<>cautare[2,i]) then begin
g:=g+1;
gasit[1,g]:=a[1,j];
gasit[2,g]:=a[2,j];
gasit[3,g]:=cautare[3,i];
end;
if (a[2,j]=cautare[2,i]) and (a[1,j]<>cautare[1,i]) then begin
g:=g+1;
gasit[1,g]:=a[1,j];
gasit[2,g]:=a[2,j];
gasit[3,g]:=cautare[3,i];
end;
if (a[1,j]=cautare[1,i]) and (a[2,j]=cautare[2,i]) then begin
cautare[3,g]:=cautare[3,g]-a[3,j];
ok:=true;
end;
end;
relatii;
end;
end;
write(gg,cautare[3,g]);
close(gg);
end.