#include <bits/stdc++.h>
using namespace std;
long long polozaj[15][200005],counter=0,BRS=0,mini=1e7,najmanji;
string t,s,temp;
char slova[15];
map <int,int> brojPonavljanja;
map <string,bool> pojavio;
bool swc[15];
int main(){
cin >> t >> s;
///Koliko ima razlicitih slova u zabranjenoj reci
for(int i=0; i<s.size(); i++){
        temp=s[i];
    if(pojavio[temp]!=true){
        pojavio[temp]=true;
        swc[counter]=false;
        slova[counter]=temp[0];
        counter++;
    }
}
swc[0]=true;
///Koliko se cesto pojavljuju slova zabranjene reci
for(int i=0; i<t.size(); i++){
temp=t[i];
if(t[i]==slova[0]){
    if(swc[1]==false)BRS++;
    swc[1]=true;
    polozaj[0][brojPonavljanja[0]]=i;
    brojPonavljanja[0]++;
    //cout << "NASAO1" << endl;
}
else if(t[i]==slova[1] && swc[1]==true && BRS!=counter+1){
    if(swc[2]==false)BRS++;
    swc[2]=true;
    polozaj[1][brojPonavljanja[1]]=i;
    brojPonavljanja[1]++;
    //cout << "NASAO2" << endl;
}
else if(t[i]==slova[2] && swc[2]==true && BRS!=counter+1){
    if(swc[3]==false)BRS++;
    swc[3]=true;
    polozaj[2][brojPonavljanja[2]]=i;
    brojPonavljanja[2]++;
    //cout << "NASAO3" << endl;
}
else if(t[i]==slova[3] && swc[3]==true && BRS!=counter+1+1){
    if(swc[4]==false)BRS++;
    swc[4]=true;
    polozaj[3][brojPonavljanja[3]]=i;
    brojPonavljanja[3]++;
    //cout << "NASAO4" << endl;
}
else if(t[i]==slova[4] && swc[4]==true && BRS!=counter+1){
    if(swc[5]==false)BRS++;
    swc[5]=true;
    polozaj[4][brojPonavljanja[4]]=i;
    brojPonavljanja[4]++;
    //cout << "NASAO5" << endl;
}
else if(t[i]==slova[5] && swc[5]==true && BRS!=counter+1){
    if(swc[6]==false)BRS++;
    swc[6]=true;
    polozaj[5][brojPonavljanja[5]]=i;
    brojPonavljanja[5]++;
    //cout << "NASAO6" << endl;
}
else if(t[i]==slova[6] && swc[6]==true && BRS!=counter+1){
    if(swc[7]==false)BRS++;
    swc[7]=true;
     polozaj[6][brojPonavljanja[6]]=i;
    brojPonavljanja[6]++;
    //cout << "NASAO7" << endl;
}
else if(t[i]==slova[7] && swc[7]==true && BRS!=counter+1){
    if(swc[8]==false)BRS++;
    swc[8]=true;
    polozaj[7][brojPonavljanja[7]]=i;
    brojPonavljanja[7]++;
    //cout << "NASAO8" << endl;
}
else if(t[i]==slova[8] && swc[8]==true && BRS!=counter+1){
    if(swc[9]==false)BRS++;
    swc[9]=true;
    polozaj[8][brojPonavljanja[8]]=i;
    brojPonavljanja[8]++;
    //cout << "NASAO9" << endl;
}
else if(t[i]==slova[9] && swc[9]==true && BRS!=counter+1){
    polozaj[9][brojPonavljanja[9]]=i;
    brojPonavljanja[9]++;
    //cout << "NASAO10" << endl;
}
}
for(map <int,int>::iterator it = brojPonavljanja.begin(); it!=brojPonavljanja.end(); it++){
if(it->second<mini){
    //cout << it->first << endl;
    //cout << it->second << endl;
    mini=it->second;
    najmanji=it->first;
}
}
for(int i=0; i<mini; i++){
t[polozaj[najmanji][i]]='*';
}
//for(int i=0; i<15; i++)cout << slova[i] << endl;
cout << mini << endl << t;
return 0;
}