def tick(d):
e = [x[:] for x in d]
r=range(-4,4)
for i in r:
e[i]=list(e[i])
for y in r:
for x in r:
c=[d[y-1][x-1],d[y-1][x],d[y-1][x+1],d[y][x-1],d[y][x+1],d[y+1][x-1],d[y+1][x],d[y+1][x+1]].count('■')
if c<2 or c>3:
e[y][x]='□'
elif c==3:
e[y][x]='■'
d = e
return d
d=[['□','□','□','□','□','□','□','□'],['□','□','■','□','□','□','□','□'],['□','□','□','■','□','□','□','□'],['□','■','■','■','□','□','□','□'],['□','□','□','□','□','□','□','□'],['□','□','□','□','□','□','□','□'],['□','□','□','□','□','□','□','□'],['□','□','□','□','□','□','□','□']]
s=['','','','','','','','',]
for i in range(20):
d = tick(d)
for j in range(8):
s[j]+=''.join(d[j])+' '
print '\n'.join(s)
ZGVmIHRpY2soZCk6CiBlID0gW3hbOl0gZm9yIHggaW4gZF0KIHI9cmFuZ2UoLTQsNCkKIGZvciBpIGluIHI6CiAgZVtpXT1saXN0KGVbaV0pCiBmb3IgeSBpbiByOgogIGZvciB4IGluIHI6CiAgIGM9W2RbeS0xXVt4LTFdLGRbeS0xXVt4XSxkW3ktMV1beCsxXSxkW3ldW3gtMV0sZFt5XVt4KzFdLGRbeSsxXVt4LTFdLGRbeSsxXVt4XSxkW3krMV1beCsxXV0uY291bnQoJ+KWoCcpCiAgIGlmIGM8MiBvciBjPjM6CiAgICBlW3ldW3hdPSfilqEnCiAgIGVsaWYgYz09MzoKICAgIGVbeV1beF09J+KWoCcKIGQgPSBlCiByZXR1cm4gZAoKZD1bWyfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnXSxbJ+KWoScsJ+KWoScsJ+KWoCcsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoSddLFsn4pahJywn4pahJywn4pahJywn4pagJywn4pahJywn4pahJywn4pahJywn4pahJ10sWyfilqEnLCfilqAnLCfilqAnLCfilqAnLCfilqEnLCfilqEnLCfilqEnLCfilqEnXSxbJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoSddLFsn4pahJywn4pahJywn4pahJywn4pahJywn4pahJywn4pahJywn4pahJywn4pahJ10sWyfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnLCfilqEnXSxbJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoScsJ+KWoSddXQpzPVsnJywnJywnJywnJywnJywnJywnJywnJyxdCmZvciBpIGluIHJhbmdlKDIwKToKIGQgPSB0aWNrKGQpCiBmb3IgaiBpbiByYW5nZSg4KToKICBzW2pdKz0nJy5qb2luKGRbal0pKycgJwpwcmludCAnXG4nLmpvaW4ocyk=