#!/usr/bin/env python3
import itertools
def main():
row = {7: 1, 4: 2, 8: 3, 2: 3, 5: 4, 1: 4, 9: 5, 3: 5, 6: 6, 10: 7}
# row_rev = {v: k for k, v in row.items()}
row_rev = [set() for _ in range(11)]
for k, v in row.items():
row_rev[v].add(k)
S = input()
if S[0] == "1":
print("No")
return
stand = []
for i, flag in enumerate(S):
if flag == "1":
stand.append(i + 1)
if len(stand) < 2:
print("No")
return
for a, b in itertools.combinations(stand, 2):
l, r = min(row[a], row[b]), max(row[a], row[b])
if r - l < 2:
continue
for i in range(l + 1, r):
# print(a, b, l, r)
if all(S[pin - 1] == "0" for pin in row_rev[i]):
print("Yes")
return
# if type(pins) is int:
# if S[pins - 1] == "0":
# print("Yes", pins)
# return
# else:
# if all(S[pin - 1] == "0" for pin in pins):
# print("Yes", pins, "set")
# return
print("No")
return
# print(solve())
if __name__ == "__main__":
main()