#include<bits/stdc++.h>
using namespace std;
int main ()
{
    string t;
    string s;
    cin>>t;
    cin>>s;
    int broj_cenzura=0,s_duzina=s.length(),t_duzina=t.length();
    int pocetak=0,kraj=t.length();
    string t1;
    int br[s_duzina];
    for(int i=0; i<s_duzina; i++)
        br[i]=0;
    for(int i=0; i<t_duzina; i++)//pocetak
        if(t[i]==s[0])
        {
            pocetak=i;
            break;
        }
    for(int i=t_duzina-1; i>=0; i--) //kraj
        if(t[i]==s[s_duzina-1])
        {
            kraj=i;
            break;
        }
    t1=t.substr(pocetak,kraj+1);
    int poz_prvog[s_duzina];
    int t1_duzina=t1.length();
    for(int i=0; i<s_duzina; i++)
        poz_prvog[i]=0;

    for(int i=0;i<s_duzina;i++)
    {
        poz_prvog[i]=t1.find(s[i]);
    }
    for(int i=0;i<t1_duzina;i++)
    {
        for(int j=0;j<s_duzina;j++)
        {
        if(t1[i]==s[j])
          if(i<poz_prvog[j-1])
          {t1[i]=t1[i]-'a'+'A';
            poz_prvog[j]=t1.find(s[j]);
          }
        }
    }
    for(int j=0;j<s_duzina;j++)
    {
        for(int i=0;i<t1_duzina;i++)
        {
            if(s[j]==t1[i])
                br[j]++;
        }
    }
    for(int i=0;i<s_duzina;i++)   //sortiranje brojaca
        for(int j=0;j<s.length();j++)
    {
        if(br[i]<=br[j])
        {
            swap(br[i],br[j]);
            swap(s[i],s[j]);
        }
    }
    for(int i=0;i<t1_duzina;i++)
    {
        if(t1[i]==s[0])
            t1[i]='*';
    }
    broj_cenzura=br[0];
    cout<<broj_cenzura<<endl; //broj cenzura (RESENJE)
    for(int i=pocetak;i<=kraj;i++)
    {
            t[i]=t1[i-pocetak];
    }
        for(int i=0;i<t_duzina;i++)
        {
            if((t[i]<'a')&&(t[i]>='A'&&t[i]<='Z'))
                t[i]=t[i]+'a'-'A';
        }
        for(int i=0;i<t_duzina;i++)
        cout<<t[i];
    return 0;
}