#include <bits/stdc++.h>
using namespace std;
int main() {
  string S, S1;
  int T[300] = {0}, k(1), x(0);
  cin >> S;
  S1 = S1 + S[0];
  T[int(S[0])]++;
  for (int i = 1; i < S.size(); i++) {
    T[int(S[i])]++;
    if (!(S1.find_first_of(S[i]) >= 0 && S1.find_first_of(S[i]) < S1.size())) {
      k++;
      S1 = S1 + S[i];
    }
    if (k > 4) {
      cout << "No";
      return 0;
    }
  }
  switch (k) {
    case 2: {
      for (int i = int('a'); i <= int('z'); i++) {
        if (T[i] > 1) x++;
      }
      (x >= 2) ? cout << "Yes" : cout << "No";
      return 0;
    }
    case 3: {
      for (int i = int('a'); i <= int('z'); i++) {
        if (T[i] > 1) x++;
      }
      (x > 0) ? cout << "Yes" : cout << "No";
      return 0;
    }
    case 4: {
      cout << "YES";
      return 0;
    }
    default:
      cout << "No";
  }
  return 0;
}
