#include <bits/stdc++.h>
using namespace std;
int gcd(int m, int n) {
  if ((0 == m) || (0 == n)) {
    return 0;
  }
  while (m != n) {
    if (m > n) {
      m -= n;
    } else {
      n -= m;
    }
  }
  return m;
}
int lcm(int m, int n) {
  if ((0 == m) || (0 == n)) {
    return 0;
  }
  return (m / gcd(m, n)) * n;
}
int main() {
  string str;
  cin >> str;
  int len = str.length();
  map<char, int> total;
  for (int i = 0; i < len; i++) total[str[i]]++;
  if (total.size() == 1 || total.size() > 4)
    cout << "No\n";
  else {
    map<char, int>::iterator iter;
    int cnt = 0;
    for (iter = total.begin(); iter != total.end(); iter++)
      if (iter->second > 1) cnt++;
    if (total.size() == 3 && cnt < 1)
      cout << "No\n";
    else if (total.size() == 2 && cnt < 2)
      cout << "No\n";
    else
      cout << "Yes\n";
  }
  return 0;
}
