dp problem, TODO:debug