'use strict'

const INF = 900719925474099;
function mapint(temp){
    return temp.split(' ').map((v)=>parseInt(v));
}

function lower_bound(d,a,b,e){
    for(var c;1<b-a;)
        d[c=0|(a+b)/2]<e ? a=c : b=c;
    return d[a]<e?b:a
};

const MOD = 1000000007;

function Main(input){
    let s = input.trim();
    let f = false;

    if(s[0]==s[1]) if(s[2]==s[3]) f=true;
    if(s[0]==s[2]) if(s[1]==s[3]) f=true;
    if(s[0]==s[3]) if(s[1]==s[2]) f=true;

    if(f) console.log('Yes');
    else console.log('No');

}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));

