#include <bits/stdc++.h>
using namespace std;
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cerr.tie(0); cout.tie(0);
	string s1;
	string s2;
	cin >> s1 >> s2;
	bool proslia, proslib, proslic;
	long long brisea, briseb, brisec;
	if(s2 == "a"){
		long long br = 0;
		for(int i = 0; i < s1.length(); i++){
			if(s1[i] == 'a'){
				br++;
				s1[i] = '*';
			}
		}
		cout << br << endl << s1;
	}
	else{
		bool tc2 = true, tc3 = true, tc4 = true;;
		long long br1 = 0;
		for(int i = 0; i < s2.length(); i++){
			if(s2[i] == 'a')
				br1++;
			if(s2[i] != 'a')
				tc2 = false;
		}
		if(s2 != "ab")
			tc3 = false;
		if(s2 != "abc")
			tc4 = false;
		if(br1 == s2.length()){
			br1 = 0;
			for(int i = 0; i < s1.length(); i++){
				if(s1[i] == 'a')
					br1++;
			}
			long long pom = br1 - s2.length() + 1;
			for(int i = 0; i < s1.length(); i++){
				if(s1[i] == 'a' && pom > 0){
					pom--;
					s1[i] = '*';
				}
			}
			cout << br1 - s2.length() + 1 << endl << s1;
		}
		else if(tc3){
			//treba proveriti da li je bolje obrisati sva 'a' pre poslednjeg 'b ili sva 'b' nakon  prvog 'a'
			brisea = 0, briseb = 0;
			proslib = false; proslia = false;
			for(int i = 0; i < s1.length(); i++){
				if(s1[i] == 'a')
					proslia = true;
				if(proslia && s1[i] == 'b')
					briseb++;
			}
			for(int i = s1.length() - 1; i >= 0; i--){
				if(s1[i] == 'b')
					proslib = true;
				if(proslib && s1[i] == 'a')
					brisea++;
			}
			//cout << "Brise" << brisea << " " << briseb << endl << endl;
			proslib = false; proslia = false;
			if(briseb <= brisea){
				for(int i = 0; i < s1.length(); i++){
					if(s1[i] == 'a')
						proslia = true;
					if(proslia && s1[i] == 'b')
						s1[i] = '*';
				}
				cout << briseb << endl << s1;
			}
			else{
				for(int i = s1.length() - 1; i >= 0; i--){
					if(s1[i] == 'b')
						proslib = true;
					if(proslib && s1[i] == 'a')
						s1[i] = '*';
				}
				cout << brisea << endl << s1;
			}
		}
		else if(tc4){
			brisea = 0, briseb = 0, brisec = 0;
			proslib = false; proslia = false; proslic = false;
			//brisemo 'a'
			for(int i = s1.length() - 1; i >= 0 ; i--){
				if(s1[i] == 'c')
					proslic = true;
				else if(s1[i] == 'b' && proslic)
					proslib = true;
				else if(s1[i] == 'a' && proslic && proslib)
					brisea++;
			}

			//brisemo 'b'
			long long prvoa = -1, poslc;
			for(int i = 0; i < s1.length(); i++){
				if(s1[i] == 'a' && prvoa == -1)
					prvoa = i;
				else if(s1[i] == 'c')
					poslc = i;
			}
			for(int i = prvoa; i <= poslc; i++){
				if(s1[i] == 'b')
					briseb++;
			}

			//brisemo 'c'
			proslia = false; proslib = false; proslic = false;
			for(int i = 0; i < s1.length(); i++){
				if(s1[i] == 'a')
					proslia = true;
				else if(s1[i] == 'b' && proslia)
					proslib = true;
				else if(s1[i] == 'c' && proslia && proslib)
					brisec++;
			}
			//cout << brisea << " " << briseb << " " << brisec << endl;
			if(brisea <= briseb && brisea <= brisec){
				proslib = false; proslia = false; proslic = false;
				for(int i = s1.length() - 1; i >= 0 ; i--){
					if(s1[i] == 'c')
						proslic = true;
					else if(s1[i] == 'b' && proslic)
						proslib = true;
					else if(s1[i] == 'a' && proslic && proslib)
						s1[i] = '*';
				}
				cout << brisea << endl << s1;
			}
			else if(briseb <= brisea && briseb <= brisec){
				proslib = false; proslia = false; proslic = false;
				long long prvoa = -1, poslc;
				for(int i = 0; i < s1.length(); i++){
					if(s1[i] == 'a' && prvoa == -1)
						prvoa = i;
					else if(s1[i] == 'c')
						poslc = i;
				}
				for(int i = prvoa; i <= poslc; i++){
					if(s1[i] == 'b')
						s1[i] = '*';
				}
				cout << briseb << endl << s1;
			}
			else{
				proslib = false; proslia = false; proslic = false;
				for(int i = 0; i < s1.length(); i++){
					if(s1[i] == 'a')
						proslia = true;
					else if(s1[i] == 'b' && proslia)
						proslib = true;
					else if(s1[i] == 'c' && proslia && proslib)
						s1[i] = '*';
				}
				cout << brisec << endl << s1;
			}
		}
	}
	return 0;
}