#include using namespace std; using ll = long long; #define rep(i,n) for(int i = 0; i < (int)(n); i++) #define Rep(i,j,n) for(int i = j; i < (int)(n); i++) using Graph = vector>; const int dx[4] = {1, 0, -1, 0}; const int dy[4] = {0, 1, 0, -1}; template void print_vec(vector vec) { rep(i,vec.size()) cout << vec[i] << ' '; cout << endl; } templateT_n gcd(T_n a,T_n b){ if(a < b) swap(a, b); if(b == 0) return a; return gcd(b,a%b); } template T_n lcm(T_n a, T_n b){ return (a/gcd(a, b))*b; } template T_n modPow(T_n a, T_n n, T_n p){ if (n == 0) return 1; if (n == 1) return a % p; if (n % 2 == 1) return (a * modPow(a, n - 1, p)) % p; ll t = modPow(a, n / 2, p); return (t * t) % p; } //mod mにおけるaの逆元を計算する template T_n modinv(T_n a, T_n m) { T_n b = m, u = 1, v = 0; while (b) { T_n t = a / b; a -= t * b; swap(a, b); u -= t * v; swap(u, v); } u %= m; if (u < 0) u += m; return u; } int main(){ string n; cin >> n; if(n.length() == 2) cout << "Yes" << endl; else cout << "No" << endl; return 0; }