problem 18 done