
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    }
}
 import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {

    public static void main(String[] args) {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    }
} Main public static void main(String[] args) {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    } main {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String S = sc.next(); S sc.next() sc.next sc boolean flag = false; flag false List<String> lst = new ArrayList(); lst new ArrayList() int countA=0 countA 0 countB=0; countB 0 if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        } S.length() != 4 S.length() S.length S 4 {
            flag = false;
        } flag = false flag false {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        } for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            } int i = 0; int i = 0; i 0 i < S.length() i S.length() S.length S i++ i++ i {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            } {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            } if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                } !lst.contains(S.substring(i, i + 1)) lst.contains(S.substring(i, i + 1)) lst.contains lst S.substring(i, i + 1) S.substring S i i + 1 i 1 {
                    lst.add(S.substring(i, i + 1));

                } lst.add(S.substring(i, i + 1)) lst.add lst S.substring(i, i + 1) S.substring S i i + 1 i 1 if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            } lst.size()!=2 lst.size() lst.size lst 2 {
                flag=false;
            } flag=false flag false {

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            } for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                } int i = 0; int i = 0; i 0 i < S.length() i S.length() S.length S i++ i++ i {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                } {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                } if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    } S.substring(i,i+1).equals((String)lst.get(0)) S.substring(i,i+1).equals S.substring(i,i+1) S.substring S i i+1 i 1 (String)lst.get(0) lst.get lst 0 {
                       countA++;

                    } countA++ countA if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    } S.substring(i,i+1).equals((String)lst.get(1)) S.substring(i,i+1).equals S.substring(i,i+1) S.substring S i i+1 i 1 (String)lst.get(1) lst.get lst 1 {
                        countB++;
                    } countB++ countB if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                } countA==countB&&countA==2 countA==countB countA countB countA==2 countA 2 {
                    flag=true;
                } flag=true flag true {
                    flag=false;
                } flag=false flag false if(flag){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        } flag {
            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 public class Main {

    public static void main(String[] args) {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    }
} public class Main {

    public static void main(String[] args) {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    }
} Main

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // write your code here
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        boolean flag = false;
        List<String> lst = new ArrayList();
        int countA=0,countB=0;


        if (S.length() != 4) {
            flag = false;
        } else {
            for (int i = 0; i < S.length(); i++) {
                if (!lst.contains(S.substring(i, i + 1))) {
                    lst.add(S.substring(i, i + 1));

                }


            }

            if(lst.size()!=2){
                flag=false;
            }else{

                for (int i = 0; i < S.length(); i++) {
                    if (S.substring(i,i+1).equals((String)lst.get(0))) {
                       countA++;

                    }else if (S.substring(i,i+1).equals((String)lst.get(1))) {
                        countB++;
                    }


                }

                if(countA==countB&&countA==2){
                    flag=true;
                }else{
                    flag=false;
                }

            }



        }

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



    }
}

