import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeMap;
import java.util.HashSet;
import java.util.List;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S = sc.nextLine();
        HashMap<Character,Integer> map = new HashMap<>();
        for (int i=0;i<4;i++){
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        }
        int cnt = 0;
        if (map.size()==2){
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        }
        if (cnt==2){
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }
} import java.util.Scanner; Scanner java.util import java.util.Arrays; Arrays java.util import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.HashMap; HashMap java.util import java.util.TreeMap; TreeMap java.util import java.util.HashSet; HashSet java.util import java.util.List; List java.util class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S = sc.nextLine();
        HashMap<Character,Integer> map = new HashMap<>();
        for (int i=0;i<4;i++){
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        }
        int cnt = 0;
        if (map.size()==2){
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        }
        if (cnt==2){
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S = sc.nextLine();
        HashMap<Character,Integer> map = new HashMap<>();
        for (int i=0;i<4;i++){
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        }
        int cnt = 0;
        if (map.size()==2){
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        }
        if (cnt==2){
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    } main {
        Scanner sc = new Scanner(System.in);
        String S = sc.nextLine();
        HashMap<Character,Integer> map = new HashMap<>();
        for (int i=0;i<4;i++){
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        }
        int cnt = 0;
        if (map.size()==2){
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        }
        if (cnt==2){
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String S = sc.nextLine(); S sc.nextLine() sc.nextLine sc HashMap<Character,Integer> map = new HashMap<>(); map new HashMap<>() for (int i=0;i<4;i++){
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        } int i=0; int i=0; i 0 i<4 i 4 i++ i++ i {
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        } {
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        } if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            } map.containsKey(S.charAt(i)) map.containsKey map S.charAt(i) S.charAt S i {
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } map.put(S.charAt(i),map.get(S.charAt(i))+1) map.put map S.charAt(i) S.charAt S i map.get(S.charAt(i))+1 map.get(S.charAt(i)) map.get map S.charAt(i) S.charAt S i 1 {
                map.put(S.charAt(i),1);
            } map.put(S.charAt(i),1) map.put map S.charAt(i) S.charAt S i 1 int cnt = 0; cnt 0 if (map.size()==2){
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        } map.size()==2 map.size() map.size map 2 {
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        } cnt = 0 cnt 0 for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            } Character c map.keySet() map.keySet map {
                if (map.get(c)==2){
                    cnt++;
                }
            } {
                if (map.get(c)==2){
                    cnt++;
                }
            } if (map.get(c)==2){
                    cnt++;
                } map.get(c)==2 map.get(c) map.get map c 2 {
                    cnt++;
                } cnt++ cnt if (cnt==2){
            System.out.println("Yes");
        } else {
            System.out.println("No");
        } cnt==2 cnt 2 {
            System.out.println("Yes");
        } System.out.println("Yes") System.out.println System.out System System.out "Yes" {
            System.out.println("No");
        } System.out.println("No") System.out.println System.out System System.out "No" String[] args args
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeMap;
import java.util.HashSet;
import java.util.List;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S = sc.nextLine();
        HashMap<Character,Integer> map = new HashMap<>();
        for (int i=0;i<4;i++){
            if (map.containsKey(S.charAt(i))){
                map.put(S.charAt(i),map.get(S.charAt(i))+1);
            } else {
                map.put(S.charAt(i),1);
            }
        }
        int cnt = 0;
        if (map.size()==2){
            cnt = 0;
            for (Character c:map.keySet()){
                if (map.get(c)==2){
                    cnt++;
                }
            }
        }
        if (cnt==2){
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }
}
