#include <bits/stdc++.h>
#define _nhatminh int main()
#define ll long long
#define str string
#define fir first
#define sec second
#define ld long double
#define pb push_back
#define MOD 100000009
#define freopen(name) if(fopen(name".INP","r")) {freopen (name".INP","r",stdin); freopen (name".OUT","w",stdout);}
#define ALL(x) (x).begin(),(x).end()
#define piint pair < int , int >
#define piL pair < int , ll>
#define pLL pair < ll , ll >
#define TIME (1.0*clock()/CLOCKS_PER_SEC)
using namespace std;
const int Max_n=5*1e3 ;
bool check[Max_n+3][Max_n+3];
int dp[Max_n+3][Max_n+3] , f[Max_n+3];
ll res = 1 ;
void KT ( str a, str b){
a = '*' + a ;
b = '*' + b ;
int n = a.size() -1 , m = b.size() - 1 ;
//fill ( check + 1 , check + n + 1 , 1 );
for (int i = 1 ; i <= n ; i ++ )
check[i][i] = true;
for (int d = 2 ; d <= n ; d ++ ){
for (int i = 1 ; i <= n - d + 1 ; i ++){
int j = i + d - 1 ;
if ( d == 2 && a[i] == a[j] ) { check[i][j]= true; continue ;}
if (a[i] == a[j] && check[i+1][j-1]) check[i][j] = true;
}
}
for (int d = 1 ; d <= n ; d ++ ){
for (int i = 1 ; i <= n - d + 1; i ++ ){
int j = i + d - 1 ;
//ghep so xau con lien tiep cua x de dc xdx
if ( a[i] == b[j] ) dp[i][j] = dp[i+1][j-1] + 2 ;
else dp[i][j] = 0 ;
//cout << dp[i][j] << ' ' << i << ' ' << j<< '\n';
}
}
for (int i = 1 ; i <= n ; i ++ ){
for (int j = m ; j >= i ; j --)
f[i] = max ( f[i] , dp[i][j]) ;
}
for (int i = 1 ; i<= n ; i ++ ){
for (int j = i ; j <= n ; j ++ )
if ( check[i+1][j] ) {
res = max ( res , 1ll*f[i] + j - i );
// cout << i+1 << ' ' << j << ' ' << f[i] << '\n';
}
}
}
void solve(){
str a , b ; cin >> a >> b;
KT ( a , b ) ;
reverse(ALL(b));
reverse(ALL(a));
KT(b,a);
cout << res ;
}
_nhatminh{
freopen("GHEPXAU");
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int q=1;
// cin >> q;
while (q--)
solve();
cerr << '\n' << "Time elapsed " << TIME << "s.\n";
return (0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgX25oYXRtaW5oICBpbnQgbWFpbigpCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RyIHN0cmluZwojZGVmaW5lIGZpciBmaXJzdAojZGVmaW5lIHNlYyBzZWNvbmQKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIE1PRCAxMDAwMDAwMDkKI2RlZmluZSBmcmVvcGVuKG5hbWUpIGlmKGZvcGVuKG5hbWUiLklOUCIsInIiKSkge2ZyZW9wZW4gKG5hbWUiLklOUCIsInIiLHN0ZGluKTsgZnJlb3BlbiAobmFtZSIuT1VUIiwidyIsc3Rkb3V0KTt9CiNkZWZpbmUgQUxMKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQojZGVmaW5lIHBpaW50IHBhaXIgPCBpbnQgLCBpbnQgPgojZGVmaW5lIHBpTCBwYWlyIDwgaW50ICwgbGw+CiNkZWZpbmUgcExMIHBhaXIgPCBsbCAsIGxsID4KI2RlZmluZSBUSU1FICgxLjAqY2xvY2soKS9DTE9DS1NfUEVSX1NFQykKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1heF9uPTUqMWUzIDsKYm9vbCBjaGVja1tNYXhfbiszXVtNYXhfbiszXTsKaW50IGRwW01heF9uKzNdW01heF9uKzNdICwgZltNYXhfbiszXTsKbGwgcmVzID0gMSA7CnZvaWQgS1QgKCBzdHIgYSwgc3RyIGIpewoJYSA9ICcqJyArIGEgOwoJYiA9ICcqJyArIGIgOwoJaW50IG4gPSBhLnNpemUoKSAtMSAgLCBtID0gYi5zaXplKCkgLSAxIDsKCS8vZmlsbCAoIGNoZWNrICsgMSAsIGNoZWNrICsgbiArIDEgLCAxICk7Cglmb3IgKGludCBpID0gMSA7IGkgPD0gbiA7IGkgKysgKQoJCWNoZWNrW2ldW2ldID0gdHJ1ZTsgCglmb3IgKGludCBkID0gMiA7IGQgPD0gbiA7IGQgKysgKXsKCQlmb3IgKGludCBpID0gMSA7IGkgPD0gbiAtIGQgKyAxIDsgaSArKyl7CgkJCWludCBqID0gaSArIGQgLSAxIDsKCQkJaWYgKCBkID09IDIgJiYgYVtpXSA9PSBhW2pdICkgeyBjaGVja1tpXVtqXT0gdHJ1ZTsgY29udGludWUgO30KCQkJaWYgKGFbaV0gPT0gYVtqXSAmJiBjaGVja1tpKzFdW2otMV0pIGNoZWNrW2ldW2pdID0gdHJ1ZTsKCQl9Cgl9Cglmb3IgKGludCBkID0gMSA7IGQgPD0gbiA7IGQgKysgKXsKCQlmb3IgKGludCBpID0gMSA7IGkgPD0gbiAtIGQgKyAxOyBpICsrICl7CgkJCWludCBqID0gaSArIGQgLSAxIDsKCQkJLy9naGVwIHNvIHhhdSBjb24gbGllbiB0aWVwIGN1YSB4IGRlIGRjIHhkeCAKCQkJaWYgKCBhW2ldID09IGJbal0gKSBkcFtpXVtqXSA9IGRwW2krMV1bai0xXSArIDIgOwoJCQllbHNlIGRwW2ldW2pdID0gMCA7CgkJCS8vY291dCA8PCBkcFtpXVtqXSA8PCAnICcgPDwgaSA8PCAnICcgPDwgajw8ICdcbic7CgkJfQoJfQoJZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyBpICsrICl7CgkJZm9yIChpbnQgaiA9IG0gOyBqID49IGkgOyBqIC0tKQoJCQlmW2ldID0gbWF4ICggZltpXSAsIGRwW2ldW2pdKSA7Cgl9CQoJZm9yIChpbnQgaSA9IDEgOyBpPD0gbiA7IGkgKysgKXsKCQlmb3IgKGludCBqID0gaSA7IGogPD0gbiA7IGogKysgKQoJCQlpZiAoIGNoZWNrW2krMV1bal0gKSB7CgkJCQlyZXMgPSBtYXggKCByZXMgLCAxbGwqZltpXSArIGogLSBpICApOwoJCQkvLwljb3V0IDw8IGkrMSA8PCAnICcgPDwgaiA8PCAnICcgPDwgZltpXSA8PCAnXG4nOwoJCQl9Cgl9Cn0Kdm9pZCBzb2x2ZSgpewoJc3RyIGEgLCBiIDsgY2luID4+IGEgPj4gYjsKCUtUICggYSAsIGIgKSA7IAoJcmV2ZXJzZShBTEwoYikpOwoJcmV2ZXJzZShBTEwoYSkpOwoJS1QoYixhKTsKCWNvdXQgPDwgcmVzIDsgCn0KX25oYXRtaW5oewpmcmVvcGVuKCJHSEVQWEFVIik7Cmlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CmNpbi50aWUoMCk7IGNvdXQudGllKDApOwppbnQgcT0xOwovLyBjaW4gPj4gcTsKd2hpbGUgKHEtLSkKCXNvbHZlKCk7CmNlcnIgPDwgJ1xuJyA8PCAiVGltZSBlbGFwc2VkICIgPDwgVElNRSA8PCAicy5cbiI7CnJldHVybiAoMCk7Cn0=