https://llego.dev/posts/longest-common-subsequence-algorithm-python/