#include <bits/stdc++.h>

using namespace std;

#define xx first
#define yy second
#define up upper_bound
#define lp lower_bound
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
typedef string str;
typedef pair<int,int> pii;
typedef pair<long long, long long> pll;
const int MAX=10e9;
int dp[200010][11];
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    string t,r;
    cin>>t>>r;
    for(int j=0;j<r.size();j++)
    {
        if(t[0]==r[j])
        {
            dp[0][j]=1;
        }
    }
    for(int i=1;i<t.size();i++)
    {
        if(t[i]==r[0])
        {
            dp[i][0]=dp[i-1][0]+1;
        }
        else
        {
            dp[i][0]=dp[i-1][0];
        }
    }
    for(int i=1;i<t.size();i++)
    {
        for(int j=1;j<r.size();j++)
        {
            if(t[i]==r[j])
            {
                dp[i][j]=min(dp[i-1][j-1],dp[i-1][j]+1);
            }
            else
            {
                dp[i][j]=dp[i-1][j];
            }
        }
    }
    cout<<dp[t.size()-1][r.size()-1]<<endl;
    int vt=t.size()-1;
    int vr=r.size()-1;
   /* for(int i=0;i<=vt;i++)
    {
        for(int j=0;j<=vr;j++)
        {
            cout<<dp[i][j]<<" ";
        }
        cout<<endl;
    }*/
    vector<int> res;
    while(vt>0)
    {
        if(t[vt]==r[vr])
        {
            if(dp[vt-1][vr]+1<=dp[vt-1][vr-1])
            {
                res.push_back(vt);
                vt--;
            }
            else
            {
                vt--;
                vr--;
            }
        }
        else
        {
            vt--;
        }
    }
    if(dp[vt][vr]==1)
    {
        res.push_back(vt);
    }
    for(int i=0;i<res.size();i++)
    {
        t[res[i]]='*';
    }
    cout<<t;
    return 0;
}