$memo={} def dfs(v,d,r) return 0 if d==v.size $memo[[d,r]]||=lambda{ ret=Float::INFINITY (0..[r,3].min).each{|i| z=v[d][i]||1 ret=[ret,dfs(v,d+1,r-i)+z].min } ret }.() end n,k=gets.split.map(&:to_i) v=$<.map{|e|e.split.map(&:to_i)} p dfs(v,0,k)/n.to_f