solve 2.19
solve 2.20
solve 2.21