Use dynamic programming.