so if we assume that we have a maximum of m possible actions including the no-op operations, then this algorithm will run in o of m squared because we're going through two loops over all possible actions and those are of course limited to all the actions we might have.