#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define pb push_back
#define mk make_pair
#define v_sort(x) sort(x.begin(),x.end())
#define v_gsort(x) sort(x.begin(),x.end(),greater<ll>())
#define v_find(x,num) find(x.begin(),x.end(),num)
#define PI 3.14159265
#define MOD 1000000007
#define MOD1 998244353

using namespace std;

const int N = 200100;
const ll INF64 = 1e18;

int n;
string s,t;
ll dp[N][10];

void Solve(){
  cin>>s>>t;
  int n=(int)s.size();
  int m=(int)t.size();
  for(int i=0;i<N;i++){
    for(int j=0;j<10;j++){
      dp[i][j]=INF64;
    }
  }
  dp[0][0]=0;
  for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
    //  if(dp[i+1][j+(s[i]==t[j])])
      dp[i+1][j+(s[i]==t[j])]=min(dp[i+1][j+(s[i]==t[j])],dp[i][j]);
      dp[i+1][j]=min(dp[i+1][j],dp[i][j]+1);
    }
  }
  ll mn=INF64;
  for(int i=0;i<m;i++) mn=min(mn,dp[n][i]);
  int idx=0;
  for(int i=0;i<m;i++) if(mn==dp[n][i]) {idx=i;break;}
  //****
  ll j=idx,cur=dp[n][idx],nw=INF64;
  for(int i=n;i>=1;i--){
    if(j-1>=0 && dp[i-1][j-1]<=dp[i][j]){
      j--;
      nw=dp[i-1][j-1];
      if(nw<cur) s[i-1]='*',cur=nw;
    }
    if(dp[i-1][j]<dp[i][j]){
      nw=dp[i-1][j];
      if(nw<cur) s[i-1]='*',cur=nw;
    }
  }
  cout<<mn<<'\n'<<s<<'\n';
}

int main(){
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int t=1;
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
//  cin>>t;
  while(t--){
    Solve();
  }
  return 0;
}