#include <bits/stdc++.h>
#define int long long
#define el '\n'
#define oo LLONG_MAX >> 2
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define pb push_back
#define pep_Guardiola \
ios::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
using namespace std;
signed main() {
pep_Guardiola
string s,
t;
cin >> s >> t;
if (s.size() > t.size())
swap(s, t);
int n = s.size(), m = t.size();
vector<vector<int>> nxt(m + 1, vector<int>(26, oo));
nxt[m - 1][t[m - 1] - 'a'] = m - 1;
for (int i = m - 1; i >= 0; i--)
nxt[i] = nxt[i + 1], nxt[i][t[i] - 'a'] = i + 1;
vector<int> dp(n + 2, oo);
dp[0] = 0;
for (int i = 1; i <= n; i++)
for (int len = i; len >= 1; len--)
if (dp[len - 1] != oo)
dp[len] = min(dp[len], nxt[dp[len - 1]][s[i - 1] - 'a']);
int ans = 0;
for (int len = 0; len <= n; len++)
if (dp[len] != oo)
ans = len;
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGVsICdcbicKI2RlZmluZSBvbyBMTE9OR19NQVggPj4gMgojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSBhbGxyKHgpIHgucmJlZ2luKCksIHgucmVuZCgpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcGVwX0d1YXJkaW9sYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgY2luLnRpZSgwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgY291dC50aWUoMCk7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzaWduZWQgbWFpbigpIHsKICBwZXBfR3VhcmRpb2xhCgogICAgICBzdHJpbmcgcywKICAgICAgdDsKICBjaW4gPj4gcyA+PiB0OwogIGlmIChzLnNpemUoKSA+IHQuc2l6ZSgpKQogICAgc3dhcChzLCB0KTsKICBpbnQgbiA9IHMuc2l6ZSgpLCBtID0gdC5zaXplKCk7CiAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBueHQobSArIDEsIHZlY3RvcjxpbnQ+KDI2LCBvbykpOwogIG54dFttIC0gMV1bdFttIC0gMV0gLSAnYSddID0gbSAtIDE7CiAgZm9yIChpbnQgaSA9IG0gLSAxOyBpID49IDA7IGktLSkKICAgIG54dFtpXSA9IG54dFtpICsgMV0sIG54dFtpXVt0W2ldIC0gJ2EnXSA9IGkgKyAxOwogIHZlY3RvcjxpbnQ+IGRwKG4gKyAyLCBvbyk7CiAgZHBbMF0gPSAwOwogIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIGZvciAoaW50IGxlbiA9IGk7IGxlbiA+PSAxOyBsZW4tLSkKICAgICAgaWYgKGRwW2xlbiAtIDFdICE9IG9vKQogICAgICAgIGRwW2xlbl0gPSBtaW4oZHBbbGVuXSwgbnh0W2RwW2xlbiAtIDFdXVtzW2kgLSAxXSAtICdhJ10pOwogIGludCBhbnMgPSAwOwogIGZvciAoaW50IGxlbiA9IDA7IGxlbiA8PSBuOyBsZW4rKykKICAgIGlmIChkcFtsZW5dICE9IG9vKQogICAgICBhbnMgPSBsZW47CiAgY291dCA8PCBhbnM7Cn0=