first dp cpp