Определим функцию \(f(s)\), которая принимает строку \(s\), состоящую из строчных латинских букв и точек, и возвращает строку, состоящую из строчных латинских букв следующим образом:
- пусть \(r\) пустая строка;
- будем обрабатывать символы \(s\) слева направо. Для каждого символа \(c\) выполним следующее: если \(c\) является строчной латинской буквой, то добавим \(c\) в конец строки \(r\); в противном случае удалим последний символ из \(r\) (если \(r\) пустая — функция аварийно завершает работу);
- вернуть \(r\) как результат функции.
Вам заданы две строки \(s\) и \(t\). Вы должны удалить минимально возможное количество символов из \(s\), чтобы \(f(s) = t\) (и функция не завершалась аварийно). Обратите внимание, что вам не разрешается вставлять новые символы в \(s\) или менять порядок существующих.
Выходные данные
Выведите одно целое число — минимально возможное количество символов, которое необходимо удалить из \(s\), чтобы \(f(s)\) не завершалась аварийно и вернула \(t\) в качестве результата выполнения.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
a.ba.b. abb
|
2
|
|
2
|
.bbac..a.c.cd bacd
|
3
|
|
3
|
c..code..c...o.d.de code
|
3
|