import java.util.LinkedHashMap;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String word = sc.next();
		char c;
		boolean isEven = true;

		LinkedHashMap<Character,Integer> countWord = new LinkedHashMap<Character,Integer>();

		for(int i = 0;i < word.length();i++) {
			c = word.charAt(i);
			if(countWord.containsKey(c)) {
				countWord.put(c, countWord.get(c)+1);
			} else {
				countWord.put(c,1);
			}
		}

		for(int num : countWord.values()){
			if(num!=2) {
				isEven = false;
			}
		}

		if(isEven) {
			System.out.println("Yes");
		} else {

			System.out.println("No");
		}
	}
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz