ll@n,@m,@a[n],@b[m]; maxflowf; f.malloc(m+n+2,1); rep(j,m){ f.addEdge(m+n,j,b[j]); ll@k; rep(k){ ll@c--; f.addEdge(j,m+c,b[j]); } } rep(i,n){ f.addEdge(m+i,m+n+1,a[i]); } wt(sum(b(m))-f.solve(m+n,m+n+1));