complete problem 18
complete problem 19
complete problem 20