import java.util.Scanner;

public class Main {

	public static void main (String[] args) {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main (String[] args) {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	}
} Main public static void main (String[] args) {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	} main {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	} 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 if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} s.charAt(0)==s.charAt(1) s.charAt(0) s.charAt s 0 s.charAt(1) s.charAt s 1 {
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    } s.charAt(2)==s.charAt(3) s.charAt(2) s.charAt s 2 s.charAt(3) s.charAt s 3 {
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    } if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        } s.charAt(0)==s.charAt(2) s.charAt(0) s.charAt s 0 s.charAt(2) s.charAt s 2 {
		        } {
		        flag = true;
		        } flag = true flag true if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} s.charAt(0)==s.charAt(2) s.charAt(0) s.charAt s 0 s.charAt(2) s.charAt s 2 {
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    } s.charAt(1)==s.charAt(3) s.charAt(1) s.charAt s 1 s.charAt(3) s.charAt s 3 {
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    } if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        } s.charAt(0)==s.charAt(1) s.charAt(0) s.charAt s 0 s.charAt(1) s.charAt s 1 {
		        } {
		        flag = true;
		        } flag = true flag true if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} s.charAt(0)==s.charAt(3) s.charAt(0) s.charAt s 0 s.charAt(3) s.charAt s 3 {
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    } s.charAt(1)==s.charAt(2) s.charAt(1) s.charAt s 1 s.charAt(2) s.charAt s 2 {
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    } if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        } s.charAt(0)==s.charAt(1) s.charAt(0) s.charAt s 0 s.charAt(1) s.charAt s 1 {
		        } {
		        flag = true;
		        } flag = true flag true 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" sc.close() sc.close sc String[] args args public class Main {

	public static void main (String[] args) {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	}
} public class Main {

	public static void main (String[] args) {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main (String[] args) {

		Scanner sc = new Scanner (System.in);
		
		String s = sc.next();
		boolean flag = false;
		
		if (s.charAt(0)==s.charAt(1)){
		    if (s.charAt(2)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(2)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(2)){
		    if (s.charAt(1)==s.charAt(3)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		} else if (s.charAt(0)==s.charAt(3)){
		    if (s.charAt(1)==s.charAt(2)){
		        if (s.charAt(0)==s.charAt(1)){
		        } else {
		        flag = true;
		        }
		    }
		}
		
		
		if (flag){
		    System.out.println("Yes");
		} else {
		    System.out.println("No");
		}
		

		sc.close();
	}
}
