XXXXXXXX##########################################################################X#############
XXXXXXXX############################################XX####################XXX#####X#############
XXXXXXXX############################XX##################################XXdddXX#############XX##
###XXXXXXXXX#########################################################XXXxxxxxddXX###############
##XXdddXXX####X##################################################XXXddxxrrrrrxxddX##############
XddddXXXXXXXXXXX#X############################################XXXXXdxxxrrrrrrrxxddX#############
XddXXXXXXXXdXXXXXXXXXXXX#############X########XdX###########XXXXXXdxxxrrrrrrrrrrxxdX############
XXXXXXXXXXddXXXXXXXXdXXXX###########X#########ddXXXXXX#####XXXddddxxxrr++++++++rrxxdX###########
XXdddXXXXdddddXXXXXddXXdXXX##################XXXXddXXX###XXXddddxxxrrr++++++++++rrxdX###########
XdddXXdddddddX##XXddddXdddXdX####XXX######xXXXXdrrdXXX##XXXddxrrr++---++++++--+++rrxdX##########
dddddddXddddX##XXXddddXxddddXX##XXXXX###XXxXdXd+++xdXXXXXXddrr+---------------++++rxxX##########
dddXddXXXXXd##XXXXdXXdXddddddXXXXddxXXXXXXrddXd+--xdddXXXXdxr+++--------------++++rrxX##########
XdXddXXXXXXX#XXXdXXXXdXXXXxxxddXxdxxddddddxxXXdx++rxxrdXXdddxrr++++-----------++++rrxX##########
###XX#XX###XXXddddXXXXXXXdddxxxx+xdxdxxxdxxxXXXxr++xxxrxdddxxrrrr+++--------+-++++rrxX##########
XX#####X#XXXXdddddXXXXXXXXXXddxr+rxrrdxxxxxrdddxr++rrrrr++rrrrr+++--------+++++++rrrd###########
XXXXXXX###XXXdddddddddXXXXXXXdxrrr+++ddrrxxxxxxxrr+++---...---------------++rrr++rrxX###########
XXXXXXXXXXXXXdxxdxxrrrrrxddddx+++-..+xr++rrxxrrrrr+++--.....-------------++rrrxrrrrx############
XXXXXXXXXXXXXdr+++-------+r+++--....-++-++++r+rrr++---......------++++++++rrrxddxrrd############
XXXXXXXXXXXXXXx+--------............-------.--++rrr+--....-------++++rxr+rrrrrxdXdd#############
XXXXdXXXXXXXXXXd+------.............----.......--++---....-------+++rrrxrrrrrrrdXX##############
XXXXdddXXXXXXXXXdr------............--.................---.------+++rxrxdxrr++rdXX##############
XXXXdddddXXXXXXdddr-----...............................--..-------++rxxrxr++++rxX###############
XXXXXdXXddddXXXXXddr---.................................-.--------++rrxrr++++rdX################
XXXXXXXXXdddXXXXXXdd+--...........-.....................----------+++rxxrr+++x##################
XXXXXXXXXXXXXXXXXXXdd+-................................------------++rrxr++++x##################
XXXXXXXXXXXXddXXXXXddd+------........................-------------+++rrrr++++rX#################
XXXXXXXXXXXXXdXXXXXXXddr-------....................--------------++++++++rr++rX#################
XXXXXXXXXXXXXXXXdXXXXXXdr----....................--------------+++r+++rr+++r+rd#################
XXXXXXXXXXXXXXXXXXdXXXXXdr-------..............---------------++rrrr++rxxr++++d#################
XXXXXXXXXddXXXXXXXddXXXXXdr---------..........---------------++++rrrr+++rr+--+d#################
XXXXXXXXXddddXXXXXdddXXXXXdr----------......----------------++++++rxddxrr+++rxX#################
XXXXXXXXXdddddXXXXXXddXXXXdd+----------.....--------------++++++rrrd####XXXXX###################
XXXXXXXXXdddddddXXXXdddXXXXXx------------..-------------+++++rrrxxdX############################
ddXXXXXXXXXdddddXXXXXXddXXXXx+----++-----..----------+++++rrrxddXX####XdxxrrrrxdX###############
dddXdXXXXXXddddddXXXXXdddXXXd++--++++--------------++++++rxdXX######Xdxrrrrrrr+rrdd#############
dddddXXXXXXXdddddddXXXXdddXXd+--+-++++------------++--++-xXXX######Xrrrrrxrrrrrrrrrx############
dXddddXXXXXXddddddddXXXXdddXd++++++++++----------++-+++-+xXXXX####Xxrxxxxrrr+++r+rrrrX##########
XdddddddXXXXXddddddddXXXXddddxrrr+r+++++--------+++++++++xXXXX####Xrxxxxxr+--+rrrrrrrX##########
dddddddddXXXXXddddddddXXXXdddXXXdxrrrr+++-------++++rr++rdXXXX###XXxrrrrr+-+rrrrxrrxd###########
XdddddddddXXXXXdddddddddXXXddXX###ddxrr++++-----+rrxxxxxxXXXXX####Xdrrxxrrrxrrxrr+rdXXdX########
ddXddddddddXXXXXdddddddddXXXddX####Xdxrrr+++----+rxXXXXXXXX#X######Xdxxr+xrxrrr+--rddxd#########
ddddddddddddXXXXXdddddddddXXddXX#####Xdxxr++++++rrX##XXX#XX#########XXdr+rxrxrxrxx+-xX##########
ddddddddddddddXXXXXXdddddddXXXdX#######Xdxrr+++rrd#####################XddxxdXX#XXXx++xX########
XXddddddddddddXXXXXXXdddddddXXXdX#######XdxrrrrxdX########################XX###XXX##dr--xX######
XXXdddddddddddddXXXXXXXddddddXXXX########XdddddX###############################X######dr--dX####
XXXddXdddddddddddddXXXXXddddddXXXX######################################################dr.+dX##
XXXdddddddddddddddddXXXXXddddddXXX########################################################drxxdX