hard dp (19,156 results)