very hard dp(568 results)