#include <bits/stdc++.h>
using namespace std;
// #define cin fein
// #define cout g
#define NMAX 1010
#define INF 1000001
#define pii pair<int,int>
#define piii pair<int, pii>
ifstream fein("maxflow.in");
ofstream g("maxflow.out");
int n, m, a, b, c, ceva, cost[NMAX][NMAX], v[NMAX], t[NMAX];
vector<int> l[NMAX];
void update_flux(int nod)
{
int aux=nod, mn=INF;
while(t[nod])
{
mn=min(cost[t[nod]][nod], mn);
nod=t[nod];
}
nod=aux;
while(t[nod])
{
cost[t[nod]][nod]-=mn;
nod=t[nod];
}
if(mn!=INF)
ceva+=mn;
}
void bfs(int nod)
{
deque<int> d;
d.push_back(nod);
while(!d.empty())
{
int nc=d.front();
d.pop_front();
for(int i=0;i<l[nc].size();i++)
{
int vc=l[nc][i];
int cvc=cost[nc][vc];
if(!v[vc]&&cvc>0)
{
v[vc]=1;
d.push_back(vc);
t[vc]=nc;
}
}
}
}
int main()
{
fein>>n>>m;
while(fein>>a>>b>>c)
{
l[a].push_back(b);
cost[a][b]=c;
}
v[1]=1;
bfs(1);
update_flux(n);
while(v[n]==1)
{
for(int i=0;i<=n;i++)
{
v[i]=0;
t[i]=0;
}
v[1]=1;
bfs(1);
update_flux(n);
}
cout<<ceva;
return 0;
}