gets f=->s,a{x,y,z,w=a s+=d=[z.to_i+x=x.to_i,x+w=w.to_i,y.to_i+w].max x>0?f[s,a[d==x+z ? 4:5,$$]]:s} p f[0,gets.split]