import re
import sys

ip = sys.stdin.readline().strip()  # 这里直接strip掉换行,更稳妥

# 1. 必须以数字开头,以数字结尾,中间三个点,不允许开头/结尾带点
res = re.match(r"^\d+\.\d+\.\d+\.\d+$", ip)
# ^:必须从字符串开头开始匹配
# \d+:匹配「至少 1 个数字」(解决了开头空数字的问题,.1.3.8 直接匹配失败)
# \.:匹配一个点
# $:必须匹配到字符串结尾(解决了结尾带点的问题,比如 1.2.3. 直接失败)
if not res:
    print("NO")
    exit()

# 2. 分割IP,处理数值和前导0
ip_parts_str = ip.split(".")
ip_OK = list(map(int, ip_parts_str))

# 3. 判断长度,双重保险
if len(ip_OK) != 4:
    print("NO")
    exit()

flag = 0
# 4. 数值范围判断
for i in ip_OK:
    if not (0 <= i <= 255):
        flag = 1
        break

# 5. 新增:前导0判断,三行搞定!
for part in ip_parts_str:
    if len(part) > 1 and part[0] == "0":
        flag = 1
        break

if flag == 0:
    print("YES")
else:
    print("NO")