#include <iostream>
#include <vector>
#include <cstring>
using namespace std;

int main() {
    string s;

    while (getline(cin, s)) {

        vector<string> strs;

        char tmp[101];

#pragma warning(disable : 4996)
        strcpy(tmp, s.c_str());

#pragma warning(disable : 4996)
        char* tokens = strtok(tmp, ".");

        while (tokens) {
            strs.push_back(tokens);

#pragma warning(disable : 4996)
            tokens = strtok(NULL, ".");
        }

        bool isAble = true;
        if (strs.size() != 4) {
            isAble = false;
        } else {
            for (auto s : strs) {
                if (s.size() > 1 && (s[0] - '0' < 1)) {
                    isAble = false;
                    break;
                }
                int i = stoi(s);
                if (i < 0 || i > 255) {
                    isAble = false;
                    break;
                }
            }
        }


        cout << (isAble ? "YES" : "NO") << endl;

    }

}