committed solution to problem 2