Dynamic Programming Using Python