Наибольшая общая подпоследовательность Python Помогите ускорить
Помогите пожалуйста ускорить код на python! надо чтобы при входных данных длиной до 10000 символов программа работала меньше чем за 2 секунды.
a = input()
b = input()
n = len(a)
m = len(b)
dm = [0 for i in range(m + 1)]
d, di, dj, dij = 0, 0, 0, 0
for i in range(1, n + 1):
dn = [0]
for j in range(1, m + 1):
di, dj, dij = dm[j], d, dm[j - 1] + 1
d = di if di > dj else dj
if a[i - 1] == b[j - 1]:
d = dij if d < dij else d
dn.append(d)
d = 0
dm = dn
print(dm[-1])
я сделал маленькую оптимизацию для памяти, чтобы хранилась только последние две строки матрицы и предыдущий ее элемент