problem 29
problem 30
problem 26