#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    int tep, flag;
    string str;
    while ((cin >> s)) {
        int len = s.size();
        int p = 0, j = 0;
        flag = 1;
        for (int i = 0; i < 4; i++) {
            tep = 0;
            while (s[j] != '.' && j < len)j++;
            str = s.substr(p, j - p);
            int r = 0;
            for (int i1 = 0; i1 < j - p; i1++) {
                if (i1 == 0)r = 1;
                else r = 10 * r;
                //tep += (str[j - 1 - i1] - '0') * r;//截取下来的字串是新串,不是旧串
                tep += (str[j - p-1 - i1] - '0') * r;

            }
            if (tep < 0 || tep>255) {
                flag = 0; break;
            }  
            p = ++j;//j++则p没有加;
        }
        if (flag == 0) {
            cout << "No!" << endl;
        }
        else {
            cout << "Yes!" << endl;

        }
    }

}
// 64 位输出请用 printf("%lld")