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")