problem 21 #swip