#include <bits/stdc++.h>
#define N 5010
#define INF 0x7fffffff
using namespace std;
int m, n, s, t, flag, minn, top, a[N], book[N], e[N][N];
long long ans;
void dfs(int x, int minn)
{
if (flag)
return;
if (x == t)
{
flag = 1, ans += minn;
for (int i = 1; i < top; i++)
e[a[i]][a[i + 1]] -= minn, e[a[i + 1]][a[i]] += minn;
return;
}
for (int i = 1; i <= n; i++)
if (e[x][i] > 0 && !book[i])
book[i] = 1, a[++top] = i, dfs(i, min(minn, e[x][i])), top--;
}
int main()
{
scanf("%d%d%d%d", &m, &n, &s, &t);
for (int i = 1; i <= m; i++)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
e[u][v] += w;
}
do
{
memset(book, 0, sizeof(book));
book[s] = 1, flag = top = 0, a[++top] = s;
dfs(s, INF);
} while (flag);
printf("%d", ans);
return 0;
}