And a disctinction between this dynamic programming algorithm and all of the other ones we've seen recently, sequence allignment, knapsack, computing independent set of the line graphs, is that it's actually kind of a lot of options for what the optimal solution can be. 