def lengthOfLIS_output_all(self, A):
        if not A:
            return 0

        n = len(A)
        MIN = [-1 for _ in xrange(n+1)]
        RET = [-1 for _ in xrange(n)]
        l = 1
        MIN[l] = 0
        for i in xrange(1, n):
            if A[i] > A[MIN[l]]:
                l += 1
                MIN[l] = i

                RET[i] = MIN[l-1]  # (optional)
            else:
                j = self.bin_search(MIN, A, A[i], 1, l+1)
                MIN[j] = i

                RET[i] = MIN[j-1] if j-1 >= 1 else -1  # (optional)

        # build the LIS (optional)
        cur = MIN[l]
        ret = []
        while True:
            ret.append(A[cur])
            if RET[cur] == -1: break
            cur = RET[cur]

        ret = ret[::-1]
        print ret

        return l
Verifies the given :class:`~jose.JWS`
dataset/ETHPy150Open algorhythms/LeetCode/300 Longest Increasing Subsequence.py/Solution.lengthOfLIS_output_all--crossover with--dataset/ETHPy150Open Demonware/jose/jose.py/verify