very hard dp(129 170 results)