hard dp (996 results)