#include<stdio.h> #include<stdlib.h> int c[101][101],f[101][101],p[101],m,n,d[10000],pre[101]; int main(){ int i,j,k=1,top,last; scanf("%d%d",&n,&m); int x,y,z; for(i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&z); c[x][y]=z;c[y][x]=z; } while(k){ k=0; top=0;last=1;d[1]=1; for(i=1;i<=n;i++)p[i]=0; p[1]=1; while(top<last){ top++; x=d[top]; for(i=2;i<=n;i++) if(!p[i] && (c[x][i]>f[x][i] || f[i][x]>0)){ d[++last]=i; p[i]=1; pre[i]=x; if(i==n){k=1;break;} } if(k==1)break; } if(k==0)break; int min=10000000; x=n; while(x!=1){ if(c[pre[x]][x]>f[pre[x]][x]&& c[pre[x]][x]-f[pre[x]][x]<min) min=c[pre[x]][x]-f[pre[x]][x]; else if(f[x][pre[x]]>0 && f[x][pre[x]]<min) min=f[x][pre[x]]; x=pre[x]; } x=n; while(x!=1){ if(c[pre[x]][x]>f[pre[x]][x]) f[pre[x]][x]+=min; else if(f[x][pre[x]]>0) f[x][pre[x]]-=min; x=pre[x]; } } int max=0; for(i=2;i<=n;i++) max+=f[1][i]; printf("%d ",max); system("pause"); return 0; }