#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
char s[maxn], t[maxn];
int ns, nt;
set<int> pos[26];
int d1[maxn];
int d2[maxn];
int main() {
  scanf("%s", s);
  scanf("%s", t);
  ns = strlen(s);
  nt = strlen(t);
  for (int i = 0; i < nt; i++) {
    int c = t[i] - 'a';
    pos[c].insert(i);
  }
  for (int i = 0; i < ns; i++) {
    if (i > 0) d1[i] = d1[i - 1];
    if (d1[i] >= nt) continue;
    int c = s[i] - 'a';
    if (s[i] == t[d1[i]]) ++d1[i];
  }
  for (int i = ns - 1; i >= 0; --i) {
    if (i < ns - 1) d2[i] = d2[i + 1];
    int c = s[i] - 'a';
    if (d2[i] >= nt) continue;
    if (s[i] == t[nt - d2[i] - 1]) ++d2[i];
  }
  int i = 0;
  for (i = 0; i < ns; i++) {
    int dd1 = i > 0 ? d1[i - 1] : 0;
    int dd2 = i < ns - 1 ? d2[i + 1] : 0;
    int c = s[i] - 'a';
    if (pos[c].empty()) break;
    set<int>::iterator j = pos[c].upper_bound(dd1);
    if (j == pos[c].begin()) break;
    --j;
    if (*j < nt - dd2 - 1) break;
  }
  if (i < ns) {
    printf("No\n");
  } else {
    printf("Yes\n");
  }
  return 0;
}
