(N,M),*R=$<.map{|s|s.split.map &:to_i} m=M.times.map{[0,[]]} c=[i=a=0]*N R.map{|r| m=m.zip(r).map{|(d, s), x| if x > d s.map{|j| (c[j]-=1)<1&&a-=1 } d=x s=[] end x