Exercise 5.31 ~ 5.32