MIPT programming task 1. Levenshtein distance + Hirschberg's algorithm (restore backway with O(m+n) space).