################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
################################################################################################################
#####################################################@n+zMWMW###################################################
##################################################MnM#+*;ii+*+#M@###############################################
#############################################@Mxxz*ii;;;:ii;;;*iz@##############################################
##########################################@Wx#;:;;:::::,:;:::,;::iznW###########################################
########################################@W#+*:,,,,,,,,,,,:::,,:,,,:*+n##########################################
########################################xz+i;:,,,,,,,,,,,,,,,,,,,,,,:;z@########################################
######################################@M+;;::,.,.,,,,,,,,,,,,,,,,,,,,,,iM#######################################
#####################################@M#i:,,,,,.,,,,,,,,::::::,,,,,,,,,,:+W#####################################
###################################@xz*;:,,,,,,,,,,,,,:::;::;::,,,,,,,,,,,iW####################################
###################################xx+;:,,,,,,,,,:,,,::;:;;;;;;:::,,,,,,,,,iW###################################
##################################xn#i:,,,,,,,::,:::,:;;;;;;i;;:;::,:,:,,,,:i@##################################
#################################x+#i::,,,,,,::::::;:;;;i:iii;;:;;;::::,,,,,:+@#################################
################################n*#i,::,,,,,:::::;:i:iiii;;;iii;;;i:;;::,,,,::##################################
###############################xi;,:,::,,.,:;;;;;;;iii;;ii;;iiiiiii;;;:::,:,:,:n################################
##############################W*:,,,,::,,,:;;;;;;i;iiiiiiiiiiiii**i;;;:;:,:,,:,:x###############################
##############################n;,.,,,:::::;;iiii;iii*i**ii*i*******iii;i;:::::,,;@##############################
#############################W;,.,,,:::::;iiiii*ii*i*****i*****+++**ii**i;;:::,,:###############################
#############################z:,,,.,:::;;i***********++++**+*++##+++**+***i;;::,::W#############################
############################x;,.,,.:::;i**++++++++++++++++++++#z####++#+++*i;;:,::*#############################
###########################@i:,.,,,::;i*++++++#+#######+######zzzzzz#######*i;;,:::M############################
###########################z;:,,,,:::;+############zzzz##zzzzzzzzzzzzzz#####*i:::::+############################
##########################Wi;:,:,:::;*##########zzzzzzzzznnzznnnzzzzzzzzzzzz#*;;:;:i@###########################
##########################z;;::;,;;;i##########zzzzzzzznnnnnnnnnnnnnzzzzzzzz#+*;;i:;W###########################
#########################@*;;:;::;;i+#z#####zzzzzzznnnnnnnnnnnnnnnnnnnzzzzzz##+i;ii;x###########################
#########################M*;;;;:;;i*######z#zzzzzzznnnnnnnnnnnnnnnnnnnnzzzzzz#+*;i*;############################
#########################Mi;i;::;i*###z##zz#zzzznnnnnnnnnnnnnnnnnnnnnnnzzzzzz###i**ii@##########################
#########################n:;;i:;;i+###zzzzzzzzznnnnnnnnnnnnxnxnxxxxxxnnnzzzzzz##***i;W##########################
##########################:;;i:;;*####zzzzzzzzznnnnnnnnxxxxxxxxxxxxxxnnnzzzzzzz##iii;M##########################
#########################+;;;;;;i#zzzzzzzzzzzznnnxnnnnnnnnxnxnxxxxxxxxnnnnzzzzzz#iii;M##########################
########################@i:;;;;;*zzzzzzzzzzzzznnnnnxnnnnxxnnnxxxxxxxxxxnnnnzzzzz#*i;ix##########################
########################@;::;;;;+zzzzzzzzzzzzznnnnnnnnnxnxnnnxxxxxxxxxxnnnnnnzzzz+;;iW##########################
########################W;::;;:;#zzzzzzzzzzznznnnnnnnnnnnnnxxxxxxxxxxxxnnnnnzzzzz+;:;x##########################
########################W:::;::i#znzzzzzzzzzzznnnnnnnnnnnnnnxxxxxxxxxxxnnnnnnzzzz#;:;z##########################
########################W:,::::i#znnzzzzzzzznnnnnnnnnnnnnnnnxxxxxxxxxxxnnnnnnzzzz#i:;+##########################
########################@:,::,:i#znnzzzzzzzzznnnnnnnnnnnnnnxnxxxxxxxxxxnnnnnnzzzz#i;;*##########################
########################@;,,,,:i#znzzzzzzzzzznnnnnnnnnnnnxxxnxxxxxxxxxxnnnnnnzzzz#i;;*##########################
#########################i,,,,:i#zzzzzzzzzzzznnnnnnnnnxxxxxxxxxxxxxxxxxnnnnznzznz+;;;+##########################
##########################,,.,:i#zzzzzzzzzzzznnnnnnnnxxxxxxxxxxxxxxxxxxnnnnnnzzzz+i;:###########################
#########################n,..::*#zzzzzzzzzzzznnnnxxxxnxxxxxxxxxxxxMxxxxnnnnzzzzzz+i::z##########################
#########################x,..::*#zzzzzzzz#+##zzznnnnnxxxxxxxxxxxMMMMxxnnnznzzzzzz+i;;x##########################
#########################x,.,:;*#zzzzzzz#+******++##znnnnxxxxnxxxnnnnz#+++#znzzzz+i;iM##########################
#########################W*,,:;*#zzzzzz+*iiiii;;;;i*+#zzznnnnnznz++iiiii*++#zzzzz*;;i@##########################
#########################xz*::;i#zzzzz#**+##zz#+*iii*+#zzznnnz##+**ii*+zz#+++#nzz+i;in@#########################
########################@**#i:;*#zzzz#++##zzzzz##+****+#zznnnz##+++#znxxxnz#++nzz+ii#zM#########################
########################@*i##;;*zzzzz#+###+*i;:;i****i*#znnxxn#++##+###zzzzzz#zzz#i+zzM#########################
########################@+*zz#i+zzzzz###+i;i;;,+*+++***#znnxxnz#+*i;;,;;i*+zzzzzn#izzzW#########################
#########################+*nz#;*zzzzz##+iii#i:,izM+*#**+znnxnzzz#++*:,*i#ii+zzzzzz*zzz@#########################
##########################*nz#**zzzzz##+*##+*ii*zz#*++*+#znnnzzn#+##;;;##++#znznzz+nzn@#########################
##########################*nz###znzzzz##zz###++#zz###+++#znnnzznzz###++#zzzzznnzznzznnW#########################
##########################*n+i#nzzzzzzzzzzzzzzzzzz##+*++#zznz#zznz#zzznnnnnzznnnznznnzW#########################
#########################z+#*;*nzzzzzzzzzz####zzz##++++##zznzzz###zznxxxnzzzznnnnn#nnzW#########################
#########################x#+i;+nzzzzzzzzz###z#zz####++###zznzzzzzzzzznxnnznnznnznn#nnn@#########################
#########################W#*i*znzzzzzzzzzzzzzzzzzzz#+###zzzzzzzzzznnnnnnnnnnnnnznnzznn##########################
#########################@z*i#nnzzzzzzzzzzzzzzzzzzz####zzzzzzzzzznnxxxxxxnnnnnnnnnnznx##########################
#########################@z+i+nnzzzzzzzzzzzzznnnnnz###zz##znzzzzznxxxxxxnnnnnnnnnnnznM##########################
##########################z#+*znzzzzzzzzzznnnnnnnz########znnz#zznnxxxxxxnxnnnnnnnzznW##########################
##########################nzz+#zzzzzzzzzzznnnnnnzz#######zzzzz#zzznxxxxxxnnnnnnnnz#nn@##########################
##########################Mzz##zzzz#zzzzzznnnnnnz##+++###znzzz##zznxxMxxxxnnnnznnnnnx###########################
##########################@nn#+zzzzz#zzzzznnnnnzz#+*++#zzzznnnz##nnxxxxxxxnnnnznnnnxM###########################
###########################Mzzzzzzzzzzzzzznnnnnz##**##zzznnnnnzz#nxxxxxMxxnnnnnnnnnn@###########################
###########################@nnz#zzzzzzzzzzznnnzz#+**+#++#zzznzzzznxxxxxxxxnnnnnnnnnx############################
############################Wz#+zzzz#zzzzzznnnnz#+***i;i*+#+##++#nxxxxxxxxnnnnnnnnnW############################
#############################Wxxnzzz##zzzzzzznzz##++*iiii***+#++znnxxxxxxxnnnnnnnx@#############################
################################xzzz###zzzzzzzzz###++***+**+##+#znnxnxxxnnnnznnnM###############################
################################Mzzzz####zzzzzzz####+++##++#zz##zzznxnnnnnznzznnM###############################
################################@zzzz#####zzzzz#####++###++#zzz#zzznnnnnnnzzzznnW###############################
################################@nzz######zzz#######++####+#zzz##zzzznznnnzzzznn@###############################
#################################nzz######z#z###++++####zzz#zzzzzzzzzzzznnzzzznn@###############################
#################################xzz#######z####++++##zznnnnnnzzzz#zzzzzzzzzzznn################################
#################################Wzz#######z####+++++++#zzzzzzzzzzzzzzzzzzzzzznx################################
#################################@zz#######z###+**iiiii**+++***++###zzznzzznzznM################################
##################################zz##++###z##++*;;i;;iiiiii*****i*+#zznzzzzzzn@################################
##################################n###+++##zz##+++**+++++++####+++zzzzznzzzzzzn#################################
##################################n###++++##z###++++*++#+###zz#++#zz#zzzzzzzznW#################################
##################################nz#+++++++#####++##+++++##zz##zzzzzz#zzzzzzn##################################
##################################xz#+++++++#++###++++++++####z#zzzzz##zzzzzzW##################################
#################################Mzz#++++++*+++####+**+++**++###zzzzz#zzzzzzx###################################
################################W;#z#++++++**+++#####++*****+##zzzzzz#zzzzzn####################################
################################z,+z##+++++**+++#######+****+#zzzzzzz##zzzn@####################################
###############################@+.+z##+++++++*++++#####z#zzznzzzzzzz###zzz@#####################################
###############################M*.+zz##+**+*++++++###z#zznnnnnzzzzzz###zzx######################################
##############################@z*,#z###++****+++++####zznnnnnnzzzzzz####zM######################################
##############################x++;+z###+++****++++++##zznnnnnnzzzzz####zzx######################################
#############################@*+zz+zz##+++****++++#++#zzzzzznnzzzz#####zz*M#####################################
#############################x;+xx+#z##++++****+*+++++######zzz#zz####zzz:iM####################################
#############################*:#MMz+z##+++*+******++**++##++#z#####++zzz#,,i@###################################
############################W:;#MM#;+##+++************++++#+#####+++#zzz+..,####################################
############################z;*+xn+ii+#++++**+**********++++++++***##zzz+..,;W##################################
###########################@+i**##**;i++++++**+****i****+**i****i*+##zzz*..,;n##################################
###########################Wz***ii+**i*++++++++****ii;;iiiiiiiii*+###zz#*...:+@#################################
###########################xW#*i:;*+zzi*+++++++**+**ii;;;;;;iii*+####zz#i...,iW#################################
#########################Wnx@M*:,,i+nn#i*++++++++*+**ii;;;;ii*++#zz##zz#i...,:z#################################
#######################xz+#W@@#,,,:znnn+i+++#++++++*****iii**+##zz###zz#i...,,+#################################
#####################Mzxn+#W@@z:,,:+nnn#i*++###+++++++***+++##zz#####z##i...,,i#################################
####################xnMMx#*WWx#*,:;iznz*i;*+####+++*++++++###zzz#####z##i...,,;@################################
#################@xzMMMn+i;xx##+;;i;*z+**i;+#####++++++++###zzz#####zz#+;...,i*zM###############################
###############@z:iznn+ii;;i#+##+iii;i****ii+######+++++++##zzz##z#zzz#+:.`.:i+**zx@############################
##############x;,:#zzi,:;i;:i++#n+i;;::ii*z#*#zz######+########zzz#zzz#*,.`.:*+i:i#nW###########################
############W+:,,*zz*,,,,;*+i*+zxni;:,,:i*nMz*#zzz############zzzz#zz##i,..,;i**:::ixW@#########################
###########x+i;:;#z#:,,:;*#z#i#nMMz;,,,,:*nxM#*#zz#######zzzzzzzzzzzz#+;...,,,:**i::i+nWWMx@####################
#########@z****#xxn+:,,i+**+zi+xxxx+,,,,,iznMx*i#zz####zzzzzzzzzzzzzz#*,...,,,,+x#*iiii*znz+n###################
#######@Wn****#W@@W+i;*##nx+ii;nnxn#;,,,,;*znn*:i#######zzzzzzzzzzzzz+;,...,,,,#WM+*##+iiinn#n@@################
######Mn#;:i*#W@@@x***nMWWW+**;innz+*;,,;;;+z+*i::######zzzzzzzzzzzz#*:...,,;i;#WM+:::+#i:izzxMnxM@#############
###@Mz+:,,,,iM@@@W+ii+x#WWMz**i:*z+++*::ii;;****i::+z###zzzzzzzzzzzz#i,...,;ii*+#+*:,,:**;::*nxxMn+n@###########
#@Mn#+;,,,,:+nxWWzii*x+i####***i;i**+++*ii;;:i***ii;*#z###zzzzzzznz#+;...,,i:;i+++*i:,,i+*:::;iizMx#+#W#########
xxxxzi::,,;+#zzz*;;i##;,;##+ii;;;,;**+nW#i;;,,i**#z*;i#zzzzzzzzzznz#*,...,,,..;*+**++:,;+*i,,::;ii#znz+#M#######
xxn+iii;:i###z#;,,,:*:,,,+##+:,.::,i*#MWWzi:,.,i*znz*i;zzzzzzzznzzz+;,...,,...:ii+zxx*:;+**;,,:iz#*;*znMxzW#####
#+iiiii*zxxz##i,,,,i;,..,*##z+,.,;:,ixWWWWn:...:+zzn#**zzzzzzznzzz#*:....,,..,;iizxMM#;;#zzziiiixWMxi;*x@@xx@###
:,,::*nMMMMMzi:,,,;i:,..,;nxMM#,,;;:;nWWWWx*,...i#z#n*:+zzzzzzzzz#+i,...,,.,,;+;;*xMMn;;*nnn#i;inWWW#iii#M@WnM##
,,,:*zzxMMz+i;;;:;ii;,.,:;xMWWxi:;*i;*nW@Mz+i,..:*###*+;+zzz#####+*;,,,;:.`.:+i;;izMMMi;iznnn*;izWWWziii*znMnnxW
::;+zz#zz+;;;;:,;i*;*:,:;;zMMWM#;i##+i*zWn++*i,,::+#+*##*###++++*i;;iii,``..i*:,,,;#zn*:;+nnx+;i#WWWx*iiiznn#znn
*#xnzz#+:,,:,,..:iiiz*;;;;+MMWWni;*zz*;*+#+++**:::;**;;+z#++**ii,,:i:;:``..:ii:,,,:+z#*,,;##zi:;*MMMxi:::i##zi;+
n@@WMn*:,;#*::::izzzxzi;;;ixMxnz;,,:+#;::;++++zz;:::;`.*zz*i;;:,*;:;ii.``.,:;;i,,,,+z#*,,,*++;,,:#z##i,,,:*+**;:
@@@@W#iinMMni;;;iznxxn*;;;;+z###i,,,,;i:.,;++#xx#;:,,,.;n+i;:::;*;,i*;``..,;;i*:,,,+z#+,,,i++;,,,*#+#+:,,,i+**i:
MWWx+ii+MMMM*i;;;+nnnx#;;:,;####+,..,,**:.,;#nxxn#:..`.*n*;,,:;z+i,**:..,,;i#nni:::+z#+,,,i++;,,,;+###*,,,:+*+#i
##+*iii*xMMWziiii*nnnn#;,,.,*####:,.,,i+*,.,ixMxnn*..:;+#i:,,:+xx+:i*:;i:i*nMMM#iiixWM#:::*++;,,,:+nxxn*iiiznMMn
+*z+iiiizWWWxiiii*nnnz+:....i###z*::;;*nnz;,;*xM#i+:.,::;;,,,;+xx+;+#zz*i:*nMMM#iiiM@@xi;izzz+;;i*z@###z***zMWMM
#zz+::::;nxxxi;;;;*++**:....:#nMWM+***+MMMM;;;*nz:ii:,:,.,,.`;+xxz;iz@M+i,*zMMMziiin@@M*iinMMM#***#@###x+**+xWWW
****:,,.,+##z;,,,,;****;,..,;xW@@@#****nMMMz:;;:,,:*;.,,...``:ixMM*i*@M+::i#MMMx*ii#@@W*iizMMMz***+M###W#**+zWWW
****;.,.,i###i,...:****i,,:;*n@@@@x****#MMMM*::,,:,*:...,,```,:#nniiixni,:;;+###i;;*W@@zii+MMMx+***n###@z*ii*znn
i*i*i,,.,:+##+,,,,,i***+iiiii#@@@@M+***+xMMM#;:,,.:+i,,...```,:*+*:::+#:,.,,i*++i,,:#nxz;;*MMMM#*ii+WWMx+::,,*##
i###+:,,,:+###:...,i++zxziiii+W@@WM*;:::+zzz*::...:++i:,..``.,;++i,,,+#:,.,,;++++:,,izz#:,:#zz#*:::;#z#z#:,,,i#+
+xMMMzii**nWMM#;;;;+xMMxn***i*nMnzz*,,,,:++*i,....,*++,...``.,;++i,,,+#;,,,,:*+++;,,:zzz;,,i+++*,,,,*zzzzi,,,;++
*zMMMx+***z@@@W****+xMxxn+ii;:i####+:,.,:****:....,*##;....`.,i+*i:,:###:,,,,*+++*,,,#zz*,,:++++:,,,;#zzz+,,,;++
*+xMMM#***#@#@@#***+nMxxx*:,,.,+####:..,,*+**;,...:+##*,,..`,:+++*:,inxx+::;;+nnnzi::*zz+,,,*+++;,,,:+zznz;::;#z
;izMMMz****W###x****zxxz+;....,*+###i,..,i++*;,,,,+#znx*;:.`,;#+z#:;+MWWniiii+xxxx*i;*xMx;::i#++*::::+xMMM+;i*nx
.,i+##+;;;;#WW@M****+z+*ii,....;##nn#;;;:*zzz+::::#MMMMzii;..;i,+z;i*MWWM*iii*nxxx#iiixWW+;;inxxniiii+WWWW#ii*nx
..:***i,.,,;zznz;::::iii**:...,;nxMMM*ii;*xxxn*iii#WWWWx*ii:.;:.,#ii*xWWW+iii*nxxxziiizWWniiinxxx+iii*xWWW#ii*#x
..,i***,...:####:...,;****;,,:;ixWMWW#ii;inxxx+iii*xWWWM+ii:`;:..*iiizWWWziii*zxxxx*ii*MWMiii#xxxz*i**zWWWziii+n
,,,i***:...,####;....:*i*+*;;;;i#MMWWniiiizxxx#iiii+MMMMzi;,`:;:,z*;;*xMMn;;;;+zzzzi::;nMW+;;*xxxn*iii+MWWniiii+
:;;i++*;...,*##zi....,*+znn*;;ii+MWWWx*i;;#xxxn*ii;iznnnz:,.`.:*;+i,,:#zzz:,,,;***+i,,,innz;;iznnn+i;;;zxxz;;:,:
;iiizzz+:,,,*nzz+,.,,:#nnnn+;iii*xMMxxi:::inzzzi::,,;##z#,..`.,*+**:,,+zzzi,,,:****i,,,:zz#:,:*z##*,,,,*zz#:,,,,
;iii#nnni;;;#MMMxi;;;;#nnnn#ii;;:+zz##;,.,,*+**;,,,,:###*,..`.,*++*:,,izzz+,,,:*+***:,,,+zzi,,:+++*:,,,izzz;,,,,
;;ii*nnn+;;;+WWWW+iii;*nnnnzi:,,.;####i,,,,*+**i:,,,,###i...`.,i+++;,,:zzz#:,,,i++**;,,,izz+,,:*+++;,,,;zzz*,,,:
i;;;iznn+;;;*MWWWziii;*znz#+:....:##z#+,,..i++**:,,,,###i,,...,;+++*,::znnx*:::i####*;;;;nnz:,,i+++i,,,:zzz#;;ii
;:,,,*#z#;;;ixWWWnii;;;++*ii:....,+#z#+:...:*+++i,,:;nnn#:;:.,;*xxxnii*x@@@M*ii+xMMMn++**xWW#::;####;::;nxxM#*+*
,....;**+::;;nMMWx*;::,:****;,..,,+zzzni:::;#nnxziii#@@@M+**:,i*MWWM+**n@##@+**+xWWWM#+**z@@M*i*nMMM+***W@@@M+**
:....:***,.,,+znnz;,...:i*iii:,:;izWW@@z*ii*nMMMn*iiz@#@@#**;.*ixWWW#**z@@#@#***nWWWM#++*#@@@+ii#MWWz***x##@@z+*