#include<fstream.h>
#define INF 30001
#define N 351
int n,m,k,c[N][N],v[N][N],f[N][N],p,z,i,j,s,d;
long EK(int c[N][N],int v[N][N],int n,int s,int d,int f[N][N])
{int pre[N],que[INF],p,q,t,i,l,m,a[N];
long e=0;
while(1)
{for(i=1;i<=n;i++)
pre[i]=0,a[i]=INF;
a[s]=p=q=0,que[q++]=s;
while(p<q)
{t=que[p++];
for(i=1;i<=n;i++)
if(f[t][i]<c[t][i]&&a[i]>a[t]+v[t][i])
que[q++]=i,pre[i]=t,a[i]=a[t]+v[t][i];}
if(!pre[d])
return e;
m=INF;
for(l=d;l!=s;l=pre[l])
if(m>(t=c[pre[l]][l]-f[pre[l]][l]))
m=t;
for(l=d;l!=s;l=pre[l])
f[pre[l]][l]+=m,f[l][pre[l]]-=m;
e=e+a[d]*m;}}
int main()
{ifstream h("fmcm.in");
ofstream g("fmcm.out");
h>>n>>m>>s>>d;
while(m--)
{h>>i>>j>>p>>z;
c[i][j]=p,v[i][j]=z,v[j][i]=-z;}
g<<EK(c,v,n,s,d,f);
h.close();
g.close();
return 0;}