maximizing utility with perfect substitutes