https://llego.dev/posts/python-solving-longest-increasing-subsequence/