#include<bits/stdc++.h>
#define ll long long
const int inf=1e9;
using namespace std;
int f[10005],to[10005],nex[10005],head[1005],u=1;
void added(int x,int y,int val)
{
to[++u]=y;
f[u]=val;
nex[u]=head[x];
head[x]=u;
to[++u]=x;
f[u]=0;
nex[u]=head[y];
head[y]=u;
}
int last[1005];
queue<int>q;
int n;
int bfs()
{
memset(last,0,sizeof(last));
q.push(1);
while(!q.empty()){
int nod=q.front(),i;
q.pop();
for(i=head[nod];i;i=nex[i]){
if (f[i]!=0 && last[to[i]]==0){
last[to[i]]=i;
q.push(to[i]);
}
}
}
return last[n]!=0;
}
int main()
{
freopen("maxflow.in","r",stdin);
freopen("maxflow.out","w",stdout);
int m,i,x,y,val;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&val);
added(x,y,val);
}
int flux=0;
while(bfs()){
int mini=inf,nod=n;
while(nod!=1){
mini=min(mini,f[last[nod]]);
nod=to[last[nod]^1];
}
nod=n;
while(nod!=1){
f[last[nod]]-=mini;
f[last[nod]^1]+=mini;
nod=to[last[nod]^1];
}
flux+=mini;
}
printf("%d\n",flux);
return 0;
}
/*#include<bits/stdc++.h>
#define ll long long
const int inf=1e9;
using namespace std;
int f[10005],to[10005],nex[10005],head[1005],u=1;
void added(int x,int y,int val)
{
to[++u]=y;
f[u]=val;
nex[u]=head[x];
head[x]=u;
to[++u]=x;
f[u]=0;
nex[u]=head[y];
head[y]=u;
}
int last[1005];
queue<int>q;
int n;
int bfs()
{
memset(last,0,sizeof(last));
last[1]=1;
q.push(1);
while(!q.empty()){
int nod=q.front(),i;
q.pop();
for(i=head[nod];i;i=nex[i]){
if (f[i]!=0 && last[to[i]]==0){
last[to[i]]=last[nod]+1;
q.push(to[i]);
}
}
}
return last[n]!=0;
}
int ptr[1005];
int dfs(int nod,int val)
{
if (nod==n)
return val;
if (val==0)
return 0;
int i;
for(i=ptr[nod];i;i=nex[i]){
if (last[to[i]]==last[nod]+1){
int aux=dfs(to[i],min(val,f[i]));
if (aux==0)
continue;
f[i]-=aux;
f[i^1]+=aux;
ptr[nod]=nex[i];
return aux;
}
}
ptr[nod]=i;
return 0;
}
int main()
{
freopen("maxflow.in","r",stdin);
freopen("maxflow.out","w",stdout);
int m,i,x,y,val;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&val);
added(x,y,val);
}
int flux=0;
while(bfs()){
for(i=1;i<=n;i++)
ptr[i]=head[i];
while(ll aux=dfs(1,inf))
flux+=aux;
}
printf("%d\n",flux);
return 0;
}
*/