s = 4 #int(input("size: "))
field = [["0" for x in range(s)]for x in range(s)]
def prf(): #PRint Field
print("\n")
for x in field:
print(" ".join(map(str, x)))
print("\n")
prf()
def set(x,y,v): #set value by position
global field
field[y][x] = str(v)
def get(x,y): #get value by position
return field[y][x]
"""def ask2set():
while True:
inp = input()
if inp == "p":
break
else:
inp = list(map(int, inp.split()))
set(inp[0],inp[1],inp[2])
print("\n")
prf()"""
def check(x,y):
alive = []
dead = []
for i in [x-1, x, x+1]:
for j in [y+1, y, y-1]:
try:
if int(get(i, j)) and (i,j) != (x,y):
alive.append((i,j))
elif (i,j) != (x,y):
dead.append((i,j))
except:
return "0"
if not int(get(x, y)) and len(alive) == 3:
return "1"
elif int(get(x, y)) and len(alive) > 1 and len(alive) < 4:
return "1"
elif int(get(x, y)) and (len(alive) < 1 or len(alive) > 4):
return "0"
def play():
for x in range(s):
for y in range(s):
set(x, y, check(x,y))
prf()
set(0, 0, 1)
prf()
set(0, 1, 1)
prf()
set(1, 0, 1)
prf()
play()
play()
play()
cyA9IDQgI2ludChpbnB1dCgic2l6ZTogIikpCmZpZWxkID0gW1siMCIgZm9yIHggaW4gcmFuZ2UocyldZm9yIHggaW4gcmFuZ2UocyldCiAKZGVmIHByZigpOiAjUFJpbnQgRmllbGQKCXByaW50KCJcbiIpCglmb3IgeCBpbiBmaWVsZDoKCQlwcmludCgiICIuam9pbihtYXAoc3RyLCB4KSkpCglwcmludCgiXG4iKQogCnByZigpCiAKZGVmIHNldCh4LHksdik6ICNzZXQgdmFsdWUgYnkgcG9zaXRpb24KCWdsb2JhbCBmaWVsZAoJZmllbGRbeV1beF0gPSBzdHIodikKIApkZWYgZ2V0KHgseSk6ICNnZXQgdmFsdWUgYnkgcG9zaXRpb24KCXJldHVybiBmaWVsZFt5XVt4XQogCiIiImRlZiBhc2syc2V0KCk6IAoJd2hpbGUgVHJ1ZToKCQlpbnAgPSBpbnB1dCgpCgkJaWYgaW5wID09ICJwIjoKCQkJYnJlYWsKCQllbHNlOgoJCQlpbnAgPSBsaXN0KG1hcChpbnQsIGlucC5zcGxpdCgpKSkKCQkJc2V0KGlucFswXSxpbnBbMV0saW5wWzJdKQoJCQlwcmludCgiXG4iKQoJCQlwcmYoKSIiIgogCmRlZiBjaGVjayh4LHkpOgoJYWxpdmUgPSBbXQoJZGVhZCA9IFtdCglmb3IgaSBpbiBbeC0xLCB4LCB4KzFdOgoJIAlmb3IgaiBpbiBbeSsxLCB5LCB5LTFdOgoJIAkJdHJ5OgoJCSAJCWlmIGludChnZXQoaSwgaikpIGFuZCAoaSxqKSAhPSAoeCx5KToKCQkgCQkJYWxpdmUuYXBwZW5kKChpLGopKQoJCSAJCWVsaWYgKGksaikgIT0gKHgseSk6CgkJIAkJCWRlYWQuYXBwZW5kKChpLGopKQoJCSAJZXhjZXB0OgoJCSAJCXJldHVybiAiMCIKCWlmIG5vdCBpbnQoZ2V0KHgsIHkpKSBhbmQgbGVuKGFsaXZlKSA9PSAzOgoJIAlyZXR1cm4gIjEiCgllbGlmIGludChnZXQoeCwgeSkpIGFuZCBsZW4oYWxpdmUpID4gMSBhbmQgbGVuKGFsaXZlKSA8IDQ6CgkgCXJldHVybiAiMSIKCWVsaWYgaW50KGdldCh4LCB5KSkgYW5kIChsZW4oYWxpdmUpIDwgMSBvciBsZW4oYWxpdmUpID4gNCk6CgkgCXJldHVybiAiMCIKIApkZWYgcGxheSgpOgoJZm9yIHggaW4gcmFuZ2Uocyk6CgkJZm9yIHkgaW4gcmFuZ2Uocyk6CgkJCXNldCh4LCB5LCBjaGVjayh4LHkpKQoJcHJmKCkKIAogCnNldCgwLCAwLCAxKQpwcmYoKQogCnNldCgwLCAxLCAxKQpwcmYoKQpzZXQoMSwgMCwgMSkKcHJmKCkKcGxheSgpCnBsYXkoKQpwbGF5KCk=