problem 2
problem 1