#include <iostream>
#include <cstring>
using namespace std;
int main() {
//Инициализируем массивы, удовлетворяющие условия
char b[100001], a[100001];
cin >> b >> a;
// b-строка до (before), a-строка после (after)
int s = 0, l1 = strlen(b), l2 = strlen(a), e1 = l1, e2 = l2;
//определяем длины первой и второй строк, без учёта нуль-символа.
// Проверяем есть ли символ в массиве b[s],
// Если есть и он такой же, как и в массиве a[s] - счётчик увеличиваеться
// в результате мы узнаём на каком, крайнем слева, символе начинаются расхождения (s)
for (; b[s] && b[s] == a[s]; ++s);
// Цикл проходиться по массиву a и b с конца введённых в них строк
// Цикл двигаеться по массиву до первого расхождения в буквах (b[e1]!=a[e2])
// в результате мы узнаём на каком, крайнем справа, символе начинаются расхождения (e2)
for (; e1>=0 && e2>=0 && b[e1]==a[e2]; --e1, --e2);
// Считаем максимальное количество букв, которые подверглись расхождению, ищя максимальное от
// максимального между 0 и разницей в кол-ве символов второй строки от первой и
// разницей между крайним правым и крайим левым номерм элемента на котором начались расхождения + 1(погрешность)
cout << max(max(0,l2-l1),e2-s+1) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJLy/QmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdC8INC80LDRgdGB0LjQstGLLCDRg9C00L7QstC70LXRgtCy0L7RgNGP0Y7RidC40LUg0YPRgdC70L7QstC40Y8KICAgIGNoYXIgYlsxMDAwMDFdLCBhWzEwMDAwMV07CiAgICBjaW4gPj4gYiA+PiBhOwogICAgLy8gYi3RgdGC0YDQvtC60LAg0LTQviAoYmVmb3JlKSwgYS3RgdGC0YDQvtC60LAg0L/QvtGB0LvQtSAoYWZ0ZXIpCiAgICBpbnQgcyA9IDAsIGwxID0gc3RybGVuKGIpLCBsMiA9IHN0cmxlbihhKSwgZTEgPSBsMSwgZTIgPSBsMjsKICAgIC8v0L7Qv9GA0LXQtNC10LvRj9C10Lwg0LTQu9C40L3RiyDQv9C10YDQstC+0Lkg0Lgg0LLRgtC+0YDQvtC5INGB0YLRgNC+0LosINCx0LXQtyDRg9GH0ZHRgtCwINC90YPQu9GMLdGB0LjQvNCy0L7Qu9CwLiAKICAgIAogICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8INC10YHRgtGMINC70Lgg0YHQuNC80LLQvtC7INCyINC80LDRgdGB0LjQstC1IGJbc10sIAogICAgLy8g0JXRgdC70Lgg0LXRgdGC0Ywg0Lgg0L7QvSDRgtCw0LrQvtC5INC20LUsINC60LDQuiDQuCDQsiDQvNCw0YHRgdC40LLQtSBhW3NdIC0g0YHRh9GR0YLRh9C40Log0YPQstC10LvQuNGH0LjQstCw0LXRgtGM0YHRjwogICAgLy8g0LIg0YDQtdC30YPQu9GM0YLQsNGC0LUg0LzRiyDRg9C30L3QsNGR0Lwg0L3QsCDQutCw0LrQvtC8LCDQutGA0LDQudC90LXQvCDRgdC70LXQstCwLCDRgdC40LzQstC+0LvQtSDQvdCw0YfQuNC90LDRjtGC0YHRjyDRgNCw0YHRhdC+0LbQtNC10L3QuNGPIChzKQogICAgZm9yICg7IGJbc10gJiYgYltzXSA9PSBhW3NdOyArK3MpOwogICAgCiAgICAvLyDQptC40LrQuyDQv9GA0L7RhdC+0LTQuNGC0YzRgdGPINC/0L4g0LzQsNGB0YHQuNCy0YMgYSDQuCBiINGBINC60L7QvdGG0LAg0LLQstC10LTRkdC90L3Ri9GFINCyINC90LjRhSDRgdGC0YDQvtC6CiAgICAvLyDQptC40LrQuyDQtNCy0LjQs9Cw0LXRgtGM0YHRjyDQv9C+INC80LDRgdGB0LjQstGDINC00L4g0L/QtdGA0LLQvtCz0L4g0YDQsNGB0YXQvtC20LTQtdC90LjRjyDQsiDQsdGD0LrQstCw0YUgKGJbZTFdIT1hW2UyXSkKICAgIC8vINCyINGA0LXQt9GD0LvRjNGC0LDRgtC1INC80Ysg0YPQt9C90LDRkdC8INC90LAg0LrQsNC60L7QvCwg0LrRgNCw0LnQvdC10Lwg0YHQv9GA0LDQstCwLCDRgdC40LzQstC+0LvQtSDQvdCw0YfQuNC90LDRjtGC0YHRjyDRgNCw0YHRhdC+0LbQtNC10L3QuNGPIChlMikKICAgIGZvciAoOyBlMT49MCAmJiBlMj49MCAmJiBiW2UxXT09YVtlMl07IC0tZTEsIC0tZTIpOwogICAgCiAgICAvLyDQodGH0LjRgtCw0LXQvCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0LHRg9C60LIsINC60L7RgtC+0YDRi9C1INC/0L7QtNCy0LXRgNCz0LvQuNGB0Ywg0YDQsNGB0YXQvtC20LTQtdC90LjRjiwg0LjRidGPINC80LDQutGB0LjQvNCw0LvRjNC90L7QtSDQvtGCCiAgICAvLyDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LPQviDQvNC10LbQtNGDIDAg0Lgg0YDQsNC30L3QuNGG0LXQuSDQsiDQutC+0Lst0LLQtSDRgdC40LzQstC+0LvQvtCyINCy0YLQvtGA0L7QuSDRgdGC0YDQvtC60Lgg0L7RgiDQv9C10YDQstC+0Lkg0LgKICAgIC8vINGA0LDQt9C90LjRhtC10Lkg0LzQtdC20LTRgyDQutGA0LDQudC90LjQvCDQv9GA0LDQstGL0Lwg0Lgg0LrRgNCw0LnQuNC8INC70LXQstGL0Lwg0L3QvtC80LXRgNC8INGN0LvQtdC80LXQvdGC0LAg0L3QsCDQutC+0YLQvtGA0L7QvCDQvdCw0YfQsNC70LjRgdGMINGA0LDRgdGF0L7QttC00LXQvdC40Y8gKyAxKNC/0L7Qs9GA0LXRiNC90L7RgdGC0YwpCiAgICBjb3V0IDw8IG1heChtYXgoMCxsMi1sMSksZTItcysxKSA8PCBlbmRsOwp9