#include <bits/stdc++.h>
using namespace std;
const int N=2e5+2;
bool f[N];
string a,b;
int q1[300],q2[300];
string calc(string x){
int len=x.size();
memset(f,true,sizeof(f));
for(int i=1;i<len-1;i++) if(x[i]==x[i-1] && x[i]==x[i+1]) f[i]=false;
string s="";
for(int i=0;i<len;i++) if(f[i]) s+=x[i];
return s;
}
int main(){
cin>>a>>b;
int l1=a.size(),l2=b.size();
bool t=false;
for(int i=0;i<l1;i++) q1[(int)a[i]]++;
for(int i=0;i<l2;i++) q2[(int)b[i]]++;
for(char i='a';i<='z' && !t;i++) if(q1[(int)i]>q2[(int)i]) t=true;
for(int i='A';i<='Z' && !t;i++) if(q1[(int)i]>q2[(int)i]) t=true;
if(l1>l2 || t){
printf("No");
return 0;
}
printf("%s",calc(a)==calc(b) ? "Yes\n" : "No\n");
return 0;
}