#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;
}
}