https://ruclips.ru/en/watch/5CGCzpKHrPs/longest-common-subsequence-using-dynamic-programming