def cycle(digits, position):
if isinstance(digits, int):
digits = list(map(int, str(digits)))
if not digits:
return position
if position == "Off":
return cycle(digits[1:], "Blue")
elif position == "Blue":
if digits[0] == 2:
return cycle(digits[1:], "Blue")
else:
return cycle(digits[1:], "Red")
elif position == "Red":
if digits[0] == 2:
return cycle(digits[1:], "Red")
else:
return cycle(digits[1:], "Off")
integer = 1
while True:
integer += 1
if not (set(str(integer)) - {"1", "2"}):
if [cycle(integer, "Off"), cycle(integer, "Blue"), cycle(integer, "Red")] == ["Off"] * 3:
print(integer)
break
ZGVmIGN5Y2xlKGRpZ2l0cywgcG9zaXRpb24pOgoJaWYgaXNpbnN0YW5jZShkaWdpdHMsIGludCk6CgkJZGlnaXRzID0gbGlzdChtYXAoaW50LCBzdHIoZGlnaXRzKSkpCglpZiBub3QgZGlnaXRzOgoJCXJldHVybiBwb3NpdGlvbgoJaWYgcG9zaXRpb24gPT0gIk9mZiI6CgkJcmV0dXJuIGN5Y2xlKGRpZ2l0c1sxOl0sICJCbHVlIikKCWVsaWYgcG9zaXRpb24gPT0gIkJsdWUiOgoJCWlmIGRpZ2l0c1swXSA9PSAyOgoJCQlyZXR1cm4gY3ljbGUoZGlnaXRzWzE6XSwgIkJsdWUiKQoJCWVsc2U6CgkJCXJldHVybiBjeWNsZShkaWdpdHNbMTpdLCAiUmVkIikKCWVsaWYgcG9zaXRpb24gPT0gIlJlZCI6CgkJaWYgZGlnaXRzWzBdID09IDI6CgkJCXJldHVybiBjeWNsZShkaWdpdHNbMTpdLCAiUmVkIikKCQllbHNlOgoJCQlyZXR1cm4gY3ljbGUoZGlnaXRzWzE6XSwgIk9mZiIpCgppbnRlZ2VyID0gMQoKd2hpbGUgVHJ1ZToKCWludGVnZXIgKz0gMQoJaWYgbm90IChzZXQoc3RyKGludGVnZXIpKSAtIHsiMSIsICIyIn0pOgoJCWlmIFtjeWNsZShpbnRlZ2VyLCAiT2ZmIiksIGN5Y2xlKGludGVnZXIsICJCbHVlIiksIGN5Y2xlKGludGVnZXIsICJSZWQiKV0gPT0gWyJPZmYiXSAqIDM6CgkJCXByaW50KGludGVnZXIpCgkJCWJyZWFr