nnxxxxxxxxnnnzzzzzzznnnnnzzz###zznnnnnzzzzzzzzzzzzzzzzzzzzz#zzzzzzzzzzz###########z#####z##########zz##############zzzz###############################
nxxxxxxxxnnnnzzzzzzznnnnnnz####zznnnnnzzzzzzzzzzzzzzzzzzz##zzzzzzzzzzzz###########zzzzzzzzz########z########z########zzz############################zz
nxxxxxxxxnnnnzzzzzzznnnnnnz#####znnnnnzzzzzzzzzzzzzzzzzz#####zzzzzzzzz###########zzzzzzzz########z#########z########################################zz
nnnxxxxxxnnnnzzzzzzznnnnnnz####zznnnnnzzzzzzzzzzzzzzzz#########zzzzzz###########z#zzzzzz#########z######################################++*########zzz
nnnnxxxxxnnnnzzzzzzzznznnzz####zznnnnnzzzzzzzzzzzzzzzz#########zzzzz##########i*i;*+zz####+#*######################################+*+#znz########zzzz
nnnnxxxxxnnnnzzzzzzznnzzzz####zzznnnnnzzzzzzzzzzzzzzzz########zzzzz###+++++*+i*i+*+;i#nz#+*zi++#+++###########################+*++#znnz##########zzzzz
znnnnxxxxxnnnnznnzzznnzzzz####zznnnnnnnzzzzzzzzzzzzzzzz#######zzzz####++**i#zxxi++nxz+*#nnMx#z+#+xxx*;**;++++zzxn+*####++*+++#znxnz#++###z+#######zzzz
znnnnnxxxxxxnnnnnnnnnnzzzz###zzznnnnnnnnzzi*+zzzzzzzzzzz######zz##+*;***+i#zxnz*xMxz++*#zMxxMxMnnxMi*zzzz*+nxMMxn#*+####zzzxxnz###x#n###zn#########zzz
znnnnnnxxxxxxxnnnnnzzzzzzz###zznzznnnnnnzzi#Mzzzzzzz##z#*##i*+*i;i:;+z#+*#zz#nzxxzxznz#+++nxMMxxxxn:+###znxzn+***###zznnxnn#####zMzzx##zxz##########zz
zznnnnnxxxxxxxxxnnnzzzzzzzz#zzzzzzzzzznnn#zzMxzz##i;;;**;,:i+*;**iii#ii*#zznnznnznznn##z+znnxMMxxMMxnnn#n###ii*+###znnz#########Mz#n+##xz#######zzz#zz
#zznnnnxxxxxxxnnnnnzzzzzzzzznnzzzzzzzzzzz+z#nM#ii.;:,+##i*z+i*+++zz#++###nnzznznnnznnzzzzxMnnxMMMMMMMMMzzz+,;#zz#nnz#++++#+#++*nMnnxi#zx#######zzz##zz
##znnnnxxxxxxnnnnnnzzzzzzzznnnzzzzzzzzzzz+n;zn*:#z#iz+*,i+**znnxxxxMxxxnnnnnxzznnxxxnnnnznxnxxMxWMMMMxMMMx+*#znnz#+++++##znnxMxMMxnx+#xz#######z#####z
##zznnnnnxxxnnnnnzzzzzzzzzzzzzzzzzzzzzzz#;z*:;i*+###n*;*;+nxMMxxnxxxxxxxxnxMnxxMznnznzxzznnnznzznMxMxxMMnxn+nxz**#zxMWWMWMWMMMMWxxMMMnz#######zz####++
+##zznnnnnnxnnnnzzzzz#zzzzzzzzzzzzzzzzzz#z#++++++#z::ii#zzxnxz#zzzzMxxznxnnnnxnnnzznnnz#nnnnznznxWMxMnxxxxxxz+i#nMMMWWWWWMnzznMM+#x##xn#####zzz###zz##
+##zzznnnnnnnnzzzzz###zzzzzzzzzzzzzzzzz**+n#+x##+#znxzznxxnn+zxMxxxMxnzxnzznzzxzz#nnnzn#znMMxnnznxxnMnxxxnnxMnxxxMMWWWWWxz#zxxMx+nx#nM#########znn#+##
###zzzznnnnnnnzz######zzzzzzzzzzzzzzzz*z##+#i+##nzxMMnxxnzxnxMxzzzznnnzzzxn#zzz#z*zzznx#znnnxxz##znznzxxxxxMMMMMWWWWMxnz#znxzzMx+xn#xx####+#zznMxxnz#+
##zzzzzznnnnzzzz########zzzzzzzzzzzz#iiz+n+#z+ixxn#zznnnnxxWxW@znznxxxxnnzzxxzznxnzzznnzznxMxxnnMxnnznMxxMMxMxMWWWM#+zzznxz++nMn+x##Mz##znMMxM##++++##
##zzzzzzznnzzzzz########zzzzzzzzzzz##i+#z#+zn+ixxznxnznnxxxxxnxznzxxxznzxnz#zznznzzxxnnnnxnMnxxxxMnz#nxxMxxxxMMxWx#+nnnxn#+++xMz#x+nM#zxMMMMMz++##zzzz
zzzzzzzzzzzzzzzz#######zzzzzzzzzzzz####zzz#xM#xxx#nnzznnnxxnnnnnnxxxnnnzxx#nznxznxxnxnxzxnnxnnMxMxzznnnMxxMxxxnMWMnzznxz++++#xMzzn*xMMWWMznMz+++###zzz
nnzzzzzzzzzzzz#########zzzzzzzzzz####zz#zz#xnnnznn#nx+zznnxznxMMxnznxnnxM#zxxz+nnxxMxxxzzznxnxzxnxnzxnzzzxxxxxxxxnnznn+i*+++zxM#nnMMMWMz#xMz++++###zzz
nnzzzzzzzzzzz###########zz##########z+xznnzxzMxznnzzn#zzznzznxxxnz#zx#zxnnznxnnMznnxnxxnn#nxnxMnxxzMMnxznznnMxxMxnxnn+*****inxMnnxMMxz++nMn#+++++##zzz
zzzzzzzzz######################++++++nzn#znzzxxnnnzzz##n##zz#zzzz#nnzzznzz#nxnnznxznxzxnnMzznnMxxMnxnxxnnnxxxnxMnxxx+#znnnz+*+znnMMM++#zxx##+++++##z##
zzzzzzzz######zzzz#############++++**xnznxznzxzzn#nnx###znzz####n#z#z#zzz##nnznznznnxnnnnxxxxxMznxnnnxxnn#nnxxnxnxMx*+nnxxnzzzz+*#xnz#zMx###++++++####
zzzzzzzz####zzzzz#############++++++*#xxxnxnznzxnzzz#zzxzzzxxxxxx#nzz#zzzznznn#z#nxxxxnn#nnMxMWMMznnzxnzxMWxnMnnxxMxi#zxMxxnxnnnn#++znMMx##++**+++####
zzzzzzz####zz#################++++++*nnnMWWMMnxnxzxxnnzz+#++*##z#z##zz#zzzxzxznxznnzznnzznxxnMMWWn#zxMxMMWMnxxnzMnxx#nxxMMxMMMMxnnnzxxnnx#++***+++++##
zzzzzzzzzz#########+##########+++++*+xxxnznxMxMMxnnzznnzzzz++*+z#+#+zznnz#nzzzz#nnnnnxnn#nxxxxMxMxznxxxxxMxxxnxnnnxMzMWMMxMMMWMxMxx+nM#*nz+++**+++++##
####zzzzzz########++##########+++++**nnxMMn###nxxMxMxnzzz##+*##z#+###zzz#xn#nznnnz##zznnnxnxnxxxMxMMMxnnMMnnnxMxznxxxxxMxxMMMMxxMxx#xWz#z+*+***+++++##
####zzzzzz################zzz#####+++#xzxMnxMnz++*+znxxnx#x##++#++zz##znnzx#nMnznzz#+#znnnxnznnnMxxMMnnzxnxxnnzxnWMxMxMxMMMxnxxxMxxzxMn#zx;;***+++++##
###zzzzz#z#############zzzzzzzzzz####+znnnnxMnxxznz++*****+++zzz#+++n#z+z#zz##nnnzzz+znzzxzznxxznxnnxznxxxMxxnnznxxnxxMMxxxxnxxxxxxxxxW##M#**+++++#n##
####zzzzz#############zzzzzz##zzz####+#zxxxzznxxnxMnxxznnznzz+#zxnzz+nzzn#xznnnzznzzznnzzn#+nxxxWMnxnxMWMMMnnnnxxxzxxnxxxxxxxMxnxxnzx#Mn+xz++++####xx#
######z###+++#########zzzzzz###zz#####+#nz#nzxnzzznnxxxxxzxxxnnn#nxxz#z##+zxnnnnnzznnnnzzz+#zMxxWWW@nnxxMWMx#zxxnnzMxnnnxxxzMMxxMxnxnnMM+nn++######nWz
######################zzz#########+++#*xznnxMznzzzzxnzznn#zzzz#+#+#znnnnnznnnnxznzzznnnzzz#nnxnMxMMnz+zMWMxn*zxnnxnznznznnnxMMMxxnnxxxMWnzM++##xz##zMz
#######zz##########################++#*++nxxMnxx#xnnxnnzznn+++#+#+++*znnnz#nnzzxnzznzzn#nznxxnnxnMMMzznxMxxxxMxxnx#xnnznnnxMxMMxMMMnxMxMWzMz+++xM#znnn
#####z####+++##############+++########++#xnxxnxnznnxxxxxnnz#x#z#++#zzzzzznznnnxnnnzznxz#nz#Mnn#xnxxMxxxWxnxxMxMxzx#nnnznnnznMMMMMxxxxnxMMMnz+z+zWzzxnM
#########+***+#############+++##z#####+++z+#xxnxnzxxnnnnnnzznnnz#z#zz++#+#znnnnnxnxzzzzzzn+nnz#nxWxxxMMWxMxnnnxnnxxxxnnnnnnxnxxMMMxMxnxnMMMMnzx+MxzzMM
########++++++#############++##zz#######+++nxxxznnxnnnzxn#znznnxnzzzn#z+#z#nnzzxxnnnnnnzz#z#zxznnMMzzzWMxMxxnxxxnnxzznnzznxnnxxMMMxxxMMxxMMxMMMxxMzznx
zz#####++++++##############+###zzzzz######+xxzxxxnxznnzzznzzznznnnx#nz#zzzzzzznnzxnnnzznzznz#zxxnxMxxnxMMWxxnnxxxxnnxzz#nxxxnnnnxxMxxxWWMMxxMMxxMMz+#x
zz#####++*++++############+++###zzzzz####++xn+xMxnnnzz#zzz#zzzzzzzzxxnxzznnnnzzznzzznnzz##znz#MxxxMnnnMMMxnnnnxnxxnnnnnnnxxxnnnznxnxxxWWMMMMnxxxxM#i*x
zz##+++++*+++############++**+*+zzzzzzz##++###xxznxnnnxxzznzn#z#nzxnxnnxnnzznnxzzz#zzn#nnnz#nnnxxxWznnMnxxnnnxxnxnzxxnxxxnxxnnnnnnnnnnMMMMWMnxxnxxxn+x
z###+++++***+#z###+###zz##+**+*+zzzzzzz#+++##+xx#nxxxnxnznznnn#nnzznnMMnzzzn#zzz##z+z#nzzzzzzxnxxxWMxnxxxxxnnxxnxznxxxxnxnxxnnnnnnnnznMxMMWMMMMMxnz#zx
z#+###+#######zz######zzz##++**#zzzzzz########nn#nxxnxxnnnnznnnznnxxnnxnnnn+*+#*#zz#zz+nnn#+#nxxxMWMxxznxxxxnnnxMxxxMxxnnxnMxnnxnxnnnxxnxxnxMMMMMx##xx
z#################zzzzzzz###+*i#z#zzz####zz####z#xx++nxMxxxxnxnnxznznzznz++*nx+*##zz#zz#znzzzznxxnWMMnnxnMMMnznnxznxxxnxxxxxxnnnxnznnxnxxzznnxxxMMxxMn
z################zzzzzzzzzzz+*+####z###zzzz####+#xz+#nxxMMxxxnnnnnzz##nz##zxz+#xnn#+nz#+z+zznnnnMnMxxnz#nxxx##nzzzxMxnxxnxxxnnnxxnnnnxxxnnnnxxnxMMMMWM
z#####zz#####zzzzzzzzzzzz####+##*+########+++##z+z#z#xxxxMxxMxxznnnnnn*+nxn*i*i#;*xn+##nzn*z#+znMnnWnni+xxxnxMnnzzxxxnnxxxxnnznnnnxxxMxnxnnxxxnxxxMMMM
z###zzzz##zzzzzzzzzzzzzzzz#####i;*#####++++**+##++zzzxx#zxxMxxMxxznz*z#x**+##++**++*znn#znxnnzzzMznWMMznxxnnnxxnnnnxxnnnxxxMnnnznnxxxxxxnnxnnnxxxxnnxx
z###zz#*i#zzz##zzzzzzzzzzzzzzz*;i+########+***++##znzzzzzzxMMxxxx#+nz#z+++*++znzzz*#z#zzn*z+zznnMnzWMxxMxn#nxxnnnxnxxxnnxxxMxnznnxMxnxxxnxnxnnxxxxnznn
z+++#z+i*zzzzzzzzzzzzzzzz##zzzi;**+++++#zz#*ii*#zzzzz+#zzznxMMMxxzznzMM+++#nMxxxxxMn++nnznnnnnnnxnnWWMxWxn#zzxnzxnnxMMnnxxxxnznnnxMxxxnnxzznnxxxxnnzzn
z+###zz++nnzzzzzzzzzzzzzzz###z###+++#+*++++*i*#zzzzzn+zz#zxnxMxxxn#xM#*z#nMMn#+***zxMM+*#xzM+xnzMzzWWxMMnnnxnznxnnxxMnxnxxxzznnnzzxMxxnn#nnnnnxxxnz#nx
z#zn#zz##nnzzzzzzzzzzzz###zzzzznnz#zz#+++#+*#zzzzzzzzzzz#zxxzzxMxnzM+#zizMMz*i***i*+zMnxx+zxnnxxMxnxWnxxMxnxznnxznnMnzxxxxxzznnznzxMxnnzznnnxnxxnnznxn
#+zx#z#zzz+#zzzzzzzzzzzz##zzzz#nnz+#zz####++nzzzzzzzzzzz#nnzznzxMxn#zz#zMWn*+#####*+#zWWxxMzxznnMxxxWnzxnznnzzzznzxxxxxMxxxznzznnnxxzzznnnnzxxxnznnxnx
*+zxz##z#+*#zzzzzzzzzzzzz###z##zxzz##zz###+#z#zzzz#*+zzz#nz#nn+xMMnzzzzzWM**z#z##zn+*+zMWW##MxnnMxzxWxxxnnnnzzznnznxxxxxMxznznnnxnznznz+nnnznnzzznnxnn
+#nxn###+##zzz#zz##z#zzzzzzzzz#nn#zz#z######zzzzzz+,:zzz###nz#zxnxMnzn#xWn*#zzz####**+#zM@@xnxnnMMzxMxxxnnnnnnxznnxMMxMxxxnznnznnzzzzn+zz#znnnnnnnxMxn
zznxn#z##zzzzzz#zz####zzzzzz#zzxn#zz######zzznzzzz+``+zz++z#+*nxnnxn#nzM@zzn++z#znzzz###zWWznznxxMzxMnnxn#nz#z##zzzxnnnnzzzzz#zz##zzz####++zzzznznnnzx
znnxnznzzzzzzzz#zzzz##zzzzzz#znxzzz#z####zznnnnzzzz:,+zz##+++*xxn##xnzzx@zznzzx+znnnn###zW@MWnnMMxnxxznnn#zznzzznxnx+xzznn#zzzzz#+##++#+zznzzz#znzn+#x
;nnxnnnzzzzzzzz#######zzzz###zxnzzzzz#zz##znnnnzzzz+i+z###++*+nn+#+zxnzM@z#nnnzxnznzz#nzzM@MxxxxxxxxxnnzznnxMWWxxWMMxxnnxnzzzz###+#n##znnz#*+nxnnnxxxn