DP, O(n^2)