#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
int m,n;
const int N=205;
vector<int> g[N];
struct node{
int u,v,flow;
}edge[N*2];
bool vis[N];
int FF(int u,int minx){
int id,x;
if(u==n){
return minx;
}
vis[u]=1;
for(auto v:g[u]){
if((edge[id==v].flow>0)&&(!vis[edge[v].v])){
x=FF(edge[id].v,min(minx,edge[id].flow));
if(x<=0) continue;
edge[id].flow-=x;
edge[id^1].flow+=x;
return x;
}
}
return 0;
}
int main(){
cin>>m>>n;
int cnt=0;
for(int i=1;i<=m;i++){
int s,e,c;
cin>>s>>e>>c;
g[s].push_back(cnt);
edge[cnt++]={s,e,c};
g[e].push_back(cnt);
edge[cnt++]={e,s,0};
}
int ans=0,x;
do{
memset(vis,0,sizeof(vis));
x=FF(1,2e9);
ans+=x;
}while(x);
cout<<ans;
return 0;
}