add optimalDp