#include<bits/stdc++.h>
using namespace std;
const int no_of_chars = 256;
string findSubString(string str, string pat)
{
int len1 = str.length();
int len2 = pat.length();
int hash_pat[no_of_chars] = {0};
int hash_str[no_of_chars] = {0};
for (int i = 0; i < len2; i++)
hash_pat[pat[i]]++;
int start = 0, start_index = -1, min_len = INT_MAX;
int count = 0;
for (int j = 0; j < len1 ; j++)
{
hash_str[str[j]]++;
if (hash_pat[str[j]] != 0 &&
hash_str[str[j]] <= hash_pat[str[j]] )
count++;
if (count == len2)
{
while ( hash_str[str[start]] > hash_pat[str[start]]
|| hash_pat[str[start]] == 0)
{
if (hash_str[str[start]] > hash_pat[str[start]])
hash_str[str[start]]--;
start++;
}
int len_window = j - start + 1;
if (min_len > len_window)
{
min_len = len_window;
start_index = start;
}
}
}
return str.substr(start_index, min_len);
}
int main()
{
string str;
string pat;
getline(cin,str);
getline(cin,pat);
cout << findSubString(str, pat)<<endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4gCnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAogIApjb25zdCBpbnQgbm9fb2ZfY2hhcnMgPSAyNTY7IAogIAoKc3RyaW5nIGZpbmRTdWJTdHJpbmcoc3RyaW5nIHN0ciwgc3RyaW5nIHBhdCkgCnsgCiAgICBpbnQgbGVuMSA9IHN0ci5sZW5ndGgoKTsgCiAgICBpbnQgbGVuMiA9IHBhdC5sZW5ndGgoKTsgCiAgCiAgIAogICAgCiAgICBpbnQgaGFzaF9wYXRbbm9fb2ZfY2hhcnNdID0gezB9OyAKICAgIGludCBoYXNoX3N0cltub19vZl9jaGFyc10gPSB7MH07IAogIAogICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuMjsgaSsrKSAKICAgICAgICBoYXNoX3BhdFtwYXRbaV1dKys7IAogIAogICAgaW50IHN0YXJ0ID0gMCwgc3RhcnRfaW5kZXggPSAtMSwgbWluX2xlbiA9IElOVF9NQVg7IAogIAogICAKICAgIGludCBjb3VudCA9IDA7ICAKICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGVuMSA7IGorKykgCiAgICB7IAogICAgICAgIGhhc2hfc3RyW3N0cltqXV0rKzsgCiAgCiAgICAgICAgIAogICAgICAgIGlmIChoYXNoX3BhdFtzdHJbal1dICE9IDAgJiYgCiAgICAgICAgICAgIGhhc2hfc3RyW3N0cltqXV0gPD0gaGFzaF9wYXRbc3RyW2pdXSApIAogICAgICAgICAgICBjb3VudCsrOyAKICAKICAgICAgICAKICAgICAgICBpZiAoY291bnQgPT0gbGVuMikgCiAgICAgICAgeyAKICAgICAgICAgICAKICAgICAgICAgICAgd2hpbGUgKCBoYXNoX3N0cltzdHJbc3RhcnRdXSA+IGhhc2hfcGF0W3N0cltzdGFydF1dIAogICAgICAgICAgICAgICAgfHwgaGFzaF9wYXRbc3RyW3N0YXJ0XV0gPT0gMCkgCiAgICAgICAgICAgIHsgCiAgCiAgICAgICAgICAgICAgICBpZiAoaGFzaF9zdHJbc3RyW3N0YXJ0XV0gPiBoYXNoX3BhdFtzdHJbc3RhcnRdXSkgCiAgICAgICAgICAgICAgICAgICAgaGFzaF9zdHJbc3RyW3N0YXJ0XV0tLTsgCiAgICAgICAgICAgICAgICBzdGFydCsrOyAKICAgICAgICAgICAgfSAKICAKICAgICAgICAgICAgCiAgICAgICAgICAgIGludCBsZW5fd2luZG93ID0gaiAtIHN0YXJ0ICsgMTsgCiAgICAgICAgICAgIGlmIChtaW5fbGVuID4gbGVuX3dpbmRvdykgCiAgICAgICAgICAgIHsgCiAgICAgICAgICAgICAgICBtaW5fbGVuID0gbGVuX3dpbmRvdzsgCiAgICAgICAgICAgICAgICBzdGFydF9pbmRleCA9IHN0YXJ0OyAKICAgICAgICAgICAgfSAKICAgICAgICB9IAogICAgfSAKICAKICAgIAoKICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0X2luZGV4LCBtaW5fbGVuKTsgCn0gCiAgCmludCBtYWluKCkgCnsgCiAgICBzdHJpbmcgc3RyOwogICAgc3RyaW5nIHBhdDsKICAgIAogICAgZ2V0bGluZShjaW4sc3RyKTsKICAgIGdldGxpbmUoY2luLHBhdCk7CiAgCiAgICBjb3V0IDw8IGZpbmRTdWJTdHJpbmcoc3RyLCBwYXQpPDxlbmRsOwogICAgcmV0dXJuIDA7IAp9IAogIAoK