#include <bits/stdc++.h>
using namespace std;
#define ll long long int
const int M = 1e9 + 7;
// string +dp 10th sep Amazon OA
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string s, t;
cin >> s >> t;
int m = s.size();
int n = t.size();
vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));
for (int i = m - 1; i >= 0; i--)
{
dp[i][n] = dp[i + 1][n] + pow(2, m - i - 1);
}
for (int i = m - 1; i >= 0; i--)
{
for (int j = n - 1; j >= 0; j--)
{
ll skip_count = dp[i + 1][j];
ll count = 0;
if (s[i] > t[j])
{
count += pow(2, m - i - 1);
}
else if (s[i] == t[j])
{
count += dp[i + 1][j + 1];
}
dp[i][j] = count + skip_count;
}
}
cout << dp[0][0] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludApjb25zdCBpbnQgTSA9IDFlOSArIDc7CgovLyBzdHJpbmcgK2RwIDEwdGggc2VwIEFtYXpvbiBPQQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBzdHJpbmcgcywgdDsKICAgIGNpbiA+PiBzID4+IHQ7CiAgICBpbnQgbSA9IHMuc2l6ZSgpOwogICAgaW50IG4gPSB0LnNpemUoKTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZHAobSArIDEsIHZlY3RvcjxpbnQ+KG4gKyAxLCAwKSk7CiAgICBmb3IgKGludCBpID0gbSAtIDE7IGkgPj0gMDsgaS0tKQogICAgewogICAgICAgIGRwW2ldW25dID0gZHBbaSArIDFdW25dICsgcG93KDIsIG0gLSBpIC0gMSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gbSAtIDE7IGkgPj0gMDsgaS0tKQogICAgewogICAgICAgIGZvciAoaW50IGogPSBuIC0gMTsgaiA+PSAwOyBqLS0pCiAgICAgICAgewogICAgICAgICAgICBsbCBza2lwX2NvdW50ID0gZHBbaSArIDFdW2pdOwogICAgICAgICAgICBsbCBjb3VudCA9IDA7CiAgICAgICAgICAgIGlmIChzW2ldID4gdFtqXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291bnQgKz0gcG93KDIsIG0gLSBpIC0gMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoc1tpXSA9PSB0W2pdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3VudCArPSBkcFtpICsgMV1baiArIDFdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRwW2ldW2pdID0gY291bnQgKyBza2lwX2NvdW50OwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGRwWzBdWzBdIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K