#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const long double PI = 3.141592653589793238462643383279502884197;
priority_queue<int, vector<int>, greater<int> > pq;
vector<int> v;
int al[256];
char s[200001], t[200001];
int visit[200001];
int n, m;
int main() {
  scanf("%s %s", s, t);
  n = strlen(s);
  m = strlen(t);
  memset(al, -1, sizeof(al));
  int l = 0;
  for (int i = 0; i < n; i++) {
    if (l < m && s[i] == t[l]) {
      al[s[i]] = l;
      l++;
    }
    if (al[s[i]] == -1) return !printf("No");
    visit[i] = al[s[i]];
  }
  if (l != m) return !printf("No");
  l = m - 1;
  memset(al, -1, sizeof(al));
  for (int i = n - 1; i >= 0; i--) {
    if (l >= 0 && s[i] == t[l]) {
      al[s[i]] = l;
      l--;
    }
    if (al[s[i]] == -1) return !printf("No");
    if (visit[i] < al[s[i]]) return !printf("No");
  }
  if (l != -1) return !printf("No");
  printf("Yes");
}
