############################################################################################################################################
####################################@WnzxMW@@###############################################################################################
###################################xi::::;i**+nM############################################################################################
##################################x:,,,,,::iiiii#W#W########################################################################################
#################################W:,,,,,,:*xi;iii*Wx@#######################################################################################
################################@i,,,,,,,i@#x;;ii;*xn###########@###########################################################################
################################n,,,,,,,,###@*;;;;;*;M#####@Mn#zzx##########################################################################
###############################@;,,,,.,,,x###M;;;;;:;:xxz+i:,,,:ii@#########################################################################
#####################@WMz+i+@##z,,,.,,,,:@####*;;;:::..,,.,,...,i+##########################################################################
###################@#i,,:,,,iW@:,,,.,.,,######x;;::::,.........,.;:M#WW#####################################################################
##################@+::,,,.,,:##.,,,..,,:W#####@i;;::,:........,,,,,;*;i#W###################################################################
##################z::,,,,,,,:;:,.......+#######n;;::,i.......,,,......,:;x##################################################################
#################@i;:,,..,,,.,........,W########*;:::i:.....,,,........,:i@#################################################################
#################xi:,:i;::::,,........z#########Wi;::;#...,,,,......,i*;::x#################################################################
################@zi:::i*z@@M:........i###########W;;;;#:,,...,,...`.iiii::*@################################################################
################zz*:::ii+@W:........,W###@@@WWWW@@Wi::,.......,.....;:;;:::M################################################################
###############Wi#+:::ii*M;........,*z#*i;;::;;+*##z#+*i;::,,...`..`;ii;::;+################################################################
################;+i;:,ii*i.....,,,:,::::;;;ii**nzx@@@@Mn#+i;:::,...,*i;;;,:i@###############################################################
##############W+++::::ii:;,,,,,,,::::::::;;i***zzxW@@@WMxz+*;:,,,::;::;*;.:;M###############################################################
##############M++i::,,+#i.,,,,,,,::::::::;ii*++z#nxW@@WWMn#+i;:::,,,,:*+i..:################################################################
##############nz+::,.,;::..,,,,,,,:::::::;i**#zn#nxM@#@@Mz#+*;::::,,,,::;..,*@##############################################################
################;:,.........,,,,,,:::::::;i*+znxnxMW####Mz#+*;::::,,,,......;M##############################################################
##############*::,,.........,,,,,,,,:::::;i**#zxxMW@####Wn#+*;;::,,,,,......:z##############################################################
##############+::,..........,,,,,,,:::::;ii**##nnznM@###Wn+*i;;:::,,,,,.....,i@#############################################################
##############n:,..........,,,,,,,:::::;;ii**#*z##zxW@@@Mn#*i;;:::,,,,,....i,:x#############################################################
##############M,,..........,,,,,,,,,,::::;ii**iii*+zzznnn#+*i;;;::,,::,,...n*,+@############################################################
##############@:,..........,,,,,,,,,,,:::::;;;::::;;;;ii*i**ii;;:::,:::,,,:@M,;M############################################################
##############@:.,,,.......,,,,,,,,,,:::::::::::::;;;;;;ii;i;;;;;:::::;:,:+#@i:M############################################################
###############Wn+ii:......,,,,,,,,,:::::::::::::;;;;;;;;;;;;;;;;;:::;;;;+M##@W#############################################################
#################@+*;:,....,,,,,::::::::::::::;;;;;;;;;;;;;i;;;;;;;;;;iii#W#################################################################
#################@+*i;,,.,,,,,,,,:::::::::::::::;;;;;;;;;;iiiii;;;;;;ii**#M#################################################################
#################@+*i;:,,,,,,,,,,,,::::::::::::;;;;;;;;;;;;;;;;;;;;;ii**+#zW################################################################
#################W+**ii;:,,,,,,,,,,,,::::;::::;;;ii;;;;;ii;;;;;;;;;;;i*++#zz@###############################################################
#################z+***i;:,,,,,,,,,,,,:::;;:;:;;i****i***ii;;;;;;;;;;;i*+##zzz###############################################################
################W++*+**;,,,,,,,,,,,,,::;;;;;;;i*+##+++++*ii;;::::::;;i*+##zz#M##############################################################
################z+*++*i:,.......,,,,,:,::;;;;i*#znnz###+**i;;;::::::;i**+#znn#@#############################################################
###############M+++++*i:,........,,,,;,,:;:;;i*#nMWxnz#+**i;;:::,,,::;i*+#zznzn#############################################################
##############@#+*+#+*;,,,,........,,,,::::;;i*#nMMxnz#+*i;;;::::,,::;i*+#zznn#W############################################################
##############M+*++#+*:,,..........,,,,::::;;i+#nxMxnz#+*i;;:::::,,,::;i*+#znnzz############################################################
#############@+**++#+i;::,........,,,,,:::;;;i*#zxxnzz#+*i;;:::,,;iiii*+###znnz#M###########################################################
#############z*i**++*;:,,,::;:,...,,,,,::;;;;i+#nxnnzz#+*;:::,,;*i:,...,,;+znnzz#@##########################################################
############Wiii**;.......`..:i;,.,,,,,:::;;;i+#nnnzz#+**;::,;i:,..,,,,....,*znzzx##########################################################
###########@*;;ii....,:::,,,.`.;;::,,,,:::;;;i+zznnzz#+*i:::;;,..:;::,.......,+zz#W#########################################################
###########n::i:...,:::,,,,,:,`.,i;::,,:::;;;i+#nnnzz#*;:,:;:..:;i++i;,.....`..;zzz@########################################################
##########@;:i,..,:,,.,,,,,:,::.`.;:,:::::;;;i+znnnnz*::,:;,..;;in@@@@Mzi,.``...:z#M########################################################
##########+,;...,:...,::,:::::::..,;:,:::::;;i+znxnn#;,,:;,,.;;*+x@@@@@@@M*.`....,#z@#######################################################
#########M,;..,:,.`.:::::::::::::`.,;,,::;:;ii*znxxz;,,,;,:.:;*++z@@@@@@@@@*......,#x#######################################################
#########i:,.,:,.`.,::::,::;:::::,.,,:,,:;:;ii*#xxn*,....::,;:i++#@@@@@@@@@M:..`...:#W######################################################
########n,,.,:,``..,:,,,,:::::::::..,:,,,;;;ii*zxMz:.....*,;::;;*+W@@@@@@@@@*..`.,..;n######################################################
######@@:,`,:,.``.,:,,,,,,,,:::,,:,.,.:,,:iii;*nMxi,....:+,::;::;;n@@@@@@@@@x,..`.,..*W#WM@#################################################
####Wz;i,..::.....,:,,,,,,,,,::;:::.;.,,,,;*i;*MWx:.....+i:,::,::::*x@@@@@@@@;..`.,,.,#z+#z#################################################
###W;*,,,`,:.....,:::,,:,::::::;;;i.#:.,,,:#ii+WWz,.....n::,:::::,,,:*M@@@@@#+...`.:,`;ii*;W################################################
###*,*.;..,,....,,::::::::::;::;;;z,+*..,,,z+i+WW+....`,M,:,,,,,,,,,,,;*n@@@@n,...`.,..i;::x################################################
###i,,.,`.,.....,,:;;:::::;;;:::;;n:*#....,z#i#@Wi...`.:M,:,.,,.,,,,,,,:;;+nWn,....`..`;;;;#################################################
###i,,........,..,.:;:::;;;;;;:;;in;iz..,,,##i#@W:...`.;x,,,,,,.,,,,,,,,:::,,,,...``....;:;*################################################
###;:,..........,,.,:::;;;;ii;;;;in*:z..,,,+#i#WW:..`..;z,,,..,,,,,,,,,,,,,,.....``````.;;i;@###############################################
###i;,,.`....,..,,....,,:;iii;;;;in*,+..,,,+#i#WW;,.```;#,:,....,,......,,,.......`````.:i*:W###############################################
###:,;.```..,,..,,.......,::;;;;;in*,;..,,,*+;+MWi..```,*,;:.......................````.,**:x###############################################
##@,,:.``.......,.........,,,,,,:;z*.:.`.,,i*;+x@i,.```.i.;;:,.......................`..,ii;z###############################################
##@,,,..`.......,...........,,,,,:zi.,``..,ii;*nMi..```.i.;:::,......................`..,iii*###############################################
##M,,:..........,.............,.,,:,..``...i;;*nx+.````.;.;::::,..................,..`..:;n*i###############################################
##x.,,..,,......,.................,...`....i::izn+.`````,.;::::,,.......................::n+;@##############################################
##x,,:.,,,...,,......................```...i::izz+.`````,.:.,;;;::::,,,,,,..............;:##;M##############################################
##n,,:.,:,,,,,,,.....................````..i,:i##+,`````.,,..,,....,,,,::::::::........,i;##ix##############################################
##z,::,;;:,,,,,,.....................````.,;,:;##+,````..,,,...........................,ii##iM##############################################
###,:;,ii:,,,,,,,..................`.```..,:,:i#z#:.```....,.................`.........,*i##*W##############################################
##n,::,+*::,,,,,,..................`.````.,,,:i#z#i.```.`..:...........................,+*z#+###############################################
####:::zzi:,,,,,,..................``````.:,,:;+##*.```....:...........................,z+#*M###############################################
####z::xxi:,,,,,,................,.``````.:,,:;#z#+:`.``...,,.........................,,z+*+@###############################################
#####+:MM*:,,,,,,,...............,```````,,.,:;#zz*;````....:,,,,,,...,,,,..,,:,.,...,,:x+*x################################################
#####z:MW*;:,,,,,,...............,``````.,,.,:;##z+i.````...::::,,,,,,,,,,,,,,,.,...,,,:M**@################################################
#####x,nW*;:,,,:,,................``````.,..,:;#z#*i:````...,:,::,,,,,,,,,,,,,,.,,..,,,;Miz#################################################
#####W,#@*;:,,:::,..............,.`.``...,..,:i#z#*i:.```....:,:::,,,,,,,,,,,,:.,...,,,iM*@#################################################
#####@:*M+;::::::,..............,`..`.......,,;#z#*;;.```...`:,,:::,,,,,,,,,,::.,,..,,,inn##################################################
######;;n#;::::;:,................`.``..,..,,:;#zz+;;,.```..`.:.,::::::::::,:::.,,,,,,,+#W##################################################
######*,++;::::;:,................````.....,,:;#nn+;;:.`````.`:,,::::::::::::::.,,.,,.,++@##################################################
######n.:i;::::;:,.............,..````.....,,:;#nx+;::,``.``..,,,,:::::::::::::,,,..,.,+####################################################
######W,,:::::;;:,,,...............```.....,,:i#xM#i::,.`.``...:..:::::::::::::,,,,,,.,in###################################################
#######i.,:;::;i:,.,,.........,`..```......,,:i#xMzi::,.`````..,,,,::::::::::::.,,,:,,::W###################################################
#######n.,,:::;i:,,:;,........,`.````......,,,izMWz;::,,`.```...:..,:::::::::::.,,,,,,:;####################################################
#######W,,.,::;i:,ii;:.......,...````..`...,::;zWW#;::,,..`.``...:..::::::::::,.,,:,.,,z########@W@@@@@@@@@@@#####################@@########
########i..,,:;i;,ii;;:......,..`````......,::inWM#;:::,...`.`...,,.,:::::::::,,,,:,.,:@########*+nnnnnnnnnxxxxxxxxxMW@MMMWWWWWWWWzn@#######
########x..,,:;i;,;iii;,....,..`````.......,::iz@M#;:::,,..```....:.,:::::::::,,,:,.,,+#########iizzzzzzzzzzzzzzzznnnnxnznnzzzzzzzz*z@######
#########*..,,:;;:;ii;;,...,,.``````...`...,::in@@z;::,,,...```...,:.:::::::::,:::,.,,W########@+;####################zz+##########++x######
#########W,,.,:;;::*ii;....,..``````...`...,::in@W#i::,,,,..````...:,,::::::::::::,,.+#########Wz:+###++++##############*+#########+i#@#####
##########n..,,::;:**i,...,..``````.`.``...,,:izWx#i;::,,,,``````...:,:::::::,:;i:,.,W########@nz:*+++++++++++++++++++++**++++++++++i*M#####
###########i..,,:::ii;,,.,,..`````..```....,,,:;*i;:,,,,,,,.``````...;:;;:;:::;i;,..##########zi#:***********************i*+******+*ii######
###########@;..,:,,:i,,,,,`.``````.....`....,,,,,,:,,,.......``````...;;::::iiii,.`iW#########;i+:i*****************i*ii*;***********;*@####
############W;.,,:,,,,,,,...`````.``.....,,,:::;::;;;::,......``````...;iiiiii;,..ix#########M:;*,;iiiiiiiiiiiiiiiiiiii;i;iiiiiiiiiii;*x####
#############W;..,:,,,,..,.````````....,,,,,,:::::::;i*;;:,,...``````..`.:;;;:.``iz@#########z::;,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#####
##############Wi........:,```.```....,,,,,,,,:::::::,,::;ii;:,...`````..````.``,+zx##########i;,,,::::;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;*####
################+:....,;,``..```...,,,,,,,::::;;;;;;::,:::;;;;::,.``````.````.i##z@#########W,;..,,:::::::::::::::::::::,:::::;:;;;;;;::@###
###############M**ii;:,.....`.,..,,,,,,::;iii;i;:;i*+#++i:::;;::;:.```.....;##zz#x##########n,:`.,,:::::::::::::::::::::,:::::;;;;;;;;::M###
################z**+#*::::,..,.,,,,::::,,..........,,,,;*#+i;;;;::;,.,:,..:+n#zz#W##########*:,..,,::::;::::;;;;;;;;::::,:,:::;;;;;iii:,z###
################W**+z#i;ii;,,,,,,,,,..........,,,,,,,,,,.,:i*i;i;:,;:;*;,,;zz#zzz##########@::`..,,::;;;;;;;;;;;;;;;;;;;,:,:;;;;;iiiii;:+###
##################*+#z****:,,,,,,,......,,,,,,,,,,:;;ii;:,,.,:iiii;::;+*;:*zz+z#z##########M:,...,,:;;ii;;;;;iiiiiiii;;;:;,;;iiiiiiii*i,i@##
#################n**+z+++;.,,,,,,...,,,..,..:,.,:,,,,:;ii;:,...:iii;::i#*i*zz++#z###########*....,,;;;iiiiiiiiiiiiiiiiii:;,;iiii******i,;@##
#################Wii*#z#;,,,,,,,,.,,..:.,:,,,,.,:,,::,,:,,;::,,.,:;ii::+#*;+*;:#nWW@@@@WM###+....,,;ii******************;;:;******+++**:;W##
##################+ii+zi,:,...,,,..,..,,,,,,:,,;:,;:,,::,,:,,::,..,;ii:,+*:i..,*#::;i**;*zMWi.....,i**++++++++++++++++++ii:;+++++++++++:;M##
##################z;;*+,;,........,,,,,,:;,,;:,:;:;ii;i:::;:,,,:,,.,:i+::*,;..,i*::;;;;:;:+W,...`.:i*+##################*i:;+##########:;x##
##################M;;*,;,,......,,,,,,,..,,,,,,,,,,,,,:ii;i::::.,:,..,;*,:;:..,;;;;;;ii::.i#,.```.:*+#zzz#zzzzzzzzzzzzzz+i;i#zzzzzzzz#z;;n##
##################@;i::,,....,.,:,,,.,,,,,,,,,,,,,,,,:,,,:ii;i;,:,,,..,::.;:..,::::::;;::,..`````.;+#zzzzzznnnnnnnnnnnnn#ii;znnnnnnzzzzi;n##
###################*i:,,.....:,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,:i*;;:.,,..,:,,:..,:,,:::::::,.``````.:#znnnnnnnxxxxxxxxxxxxziiinxxxxxxnnnn*in##
###################n:,,....,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:i;::.,.,,:,,..:;,,:::::,:,.````.`.:#nxxxxxxxxxxxMMMMxMxxni*inxxxxxxxxxx+in##
###################n,.,...::,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:ii....,,,.,,;;,:;:;::,,,.``````.:zxMMMMxMMMMMMMMMMMMMMxi*ixMMMMMMMxxx#ix##
###################+.,..,,,.,,,,,,,,,,,:::,,,,,,,,,,,:::,,,,,,:::,:i,:...,,,,,ii,;;ii;;:,,.```````;nMWMMMMMMMMMMMMWWMWWWMi+ixMWWWWWMMMxz+M##
##################W,,...::.,,,,,,,,::::,,,,,,::,:::,,,,,::::,,,:::,:,*,..,,,,,i*:***+*i;::.``.```.:zMWWMMMMMMMMMMWWWWWWWMi+ixWWWWWWWWMxz+M##
##################z,,.,,,.,,,,,,:::::,,,,:::::::;;;;;;:,,,::::::::::,i,,..,,,,*+:###z#+*,:.``````.:#MWMxMMMMMMMMMWMMMWMWMi+;xWWMWMMWMMMzix##
#################@;,..::.:,,,:::::::,.,::::,,,,,,,:::;;::,,,:::::::::,.i,..,,,++:nzxnxn#:;,```..`.:zxMxxxxxxxxxMMMMMMMMMxi*;xMMMMMMMMxxz;x##
#################n,,.,,.,,,,::::::,,,::,,,,.,,,,.,,,,,::;:,,,:::::::::,;...,:,+#:xnxxMx#;i:``.....,#xxnnnnnnnnxxxxxxxxxnn;*;nxxxxxxxxxxz:n##
#################i,,,;,:,,,:::::,,,,,,,,,,......,.,,,,,,::;:,,,::::::::,.:.,:,*+:zznnnn+;;,```....,+nnnnznnnznnnnnnnnnnnz;i;znnnxxxxnnn#:z##
################M,,,,,,,:,:::::,,:,,,,,,....,,,,,,,,,,,,,,:::,,,::::::::.:..:,i*,+#++++i:;.`````..,*zzzzzzzzzzzzzzzzzzzz#;i;#zznnnnnzzz#:###
################+:,::,::,:;:::,,:,,,,,,,,,,,,:;:,:::,,,,,,,,::,,:;:::::::,.,,::i,i*iiii;,:` ``````,i++##################+;;:+#zzzzzzzzz+:###
###############@;:,;:,:,,:;;:,,:,,,,,,,,,,:iiii*++**;,,,,,,:::::;::::::::,.,,:::,;;;;::,,,` ``````.;**++++++++++++++++++*:;:+++########*,###
###############n,:::,::,,,::i::::,,,,..,;;;;;iiiiiii*+;,,,,,,::::::::::;;:,.,::,.,::,,,.,.````````.:ii******************i:::**+++++++++*,###
###########MxMM*::;;:::::,:::,:,,,,,,,:::;i*+++++##+iii*;,:,::::::::::::;::.,,:,.,,,,,....````````.,:;iiiiiiiiiiiiiiiiii;:::i*******+++i,###
#########@+;,i;;:::,:::::::::::;:,,.,:::;;;;;i******++*;i;,:::::::::::;:;;:.,::,.,,,,,....````````..,:;;;;;;ii;;iiiii;;;;:,:iiiii******i,###
#########+,:,:,:::;:::::::::::,,;i,,:,,,:;iiiii**+##+i**;;;;::::::::::;::;;:.::,.,,,,,,,..````````..,,:;;;;;;;;;;;;;;;;;::,,;;iiiiiiii*;,###
#######@n.,,,:,::;;:::::::::::,:,:,,,,,:::;i**++###+***;;;;;;::::;::::::;;;;.::,,::::::,,.`````````..,,:::::::::::::::::,,,:;;;;;;iiiii;,z##
#####@n+,.,,,:::::::::;::::::::,:,,,,,,,:;;;;;i*++++++ii;:;;;::::::::;;;;;;;.,:,,:::;;::,.`````````...,:::::::::::::::::,,,,::::;;;;;;i:,z##
###@z;,:...:,:,::;::::;;::::::::,,,,,,,,,,::::::;;;**iii;;::::;;::;;,;;;;;;;:::,,:::;;;:,.````````....,,,,,,,,,,,,,,::::,,,,:::::;;;;;;:,n##
###x,,,,...:::.:;i::::;;:::;::::,,..,,,,:::::::::;::::;:;::,;;;:::;;:;;;;;;;:::,:;;:;;;:,.````````....,,,,,,,,,,,,,,,,,,,,,,,::::::;;;;:,n##
###+,,:,...;i,.,;:;:::;;::::::::,..,,,:::::.......,::::::::::;::;;;;:;;;;;;;:::,:;;;;;;,,.```````.....,,,,,,,,,,,,,,,,,,.,,,,,:::::;;:;,,x##
###*::,,.,`:i.`.;;;;;;;;::::::::,...,:::,``.,,,:,..`,:;::,,,,;i:;;;;;:;;;;;;;::,:;;;;;;:,.```````....,,,,,,,,,,,,,,,,,,,.,,,,,,::::::::,,M##
####,,,,,,.,:`..:;;;;;;;:::;::::,,,::;,..,::::;:;::,.`,:::,,,:;:;;;;;:;;;;;;:,;,:;;;;;;:,..````.`.,.,,,,,,,,,,,,,,,,,,,,.,,,,::::::::::,,W##
###n.,,,,.`.,`.,:;;;;;;;::;;;;::,,,;:,`.:::,.....,:::,.,:::,,,;:;;;;;;;;;;;;;::.;i;;;:::,.#.``...,,,,,,,,,,,,,,,,,,,,,,,.,,,:::::::::::,,W##
###W,,:;:..,,..:;;;;;;;;::;;;;::,,:::,,::.`.,,,:,.`.::::;:::,,:;;;;;;;;;;;;;;;:,i;:,,,,;.+M,``...,,:::::::::::::::,,,::,.:,::::::::::::,:@##
###@;:::::,::,.:;;;;;;;;::;;;;::,:::i;::,`,::::::::.,:::;:;:,,;;;;;;;;;i;;;;;;:#WMx#*;::#@W:.`...,::::::::::::::::::::::,:,:::::::::::::;@##
####z:;;:;...:,,;;;;;;;;;:;;;;:::::,;iii;:::.....::::::;:::;:,:;;;;;;;;;;;;;;iM#######@M@#W,..`..:::::::;;;;::::::::::::,::::::::::::::;i@##
####@i::::,,`.:.*#i;;;;;;:;;;;:::::::::;ii;:,,::,::::::;:.,;;::;;;;;;;i;;;;i:x############@.,,`..:;;;;;;;;;;;;;;;;::;;;:,::::::::::::::;*###
#####x:::,...`.+@#n;;;;;;::;;;:;::,`,:,::;ii:::;;:::;:,::,.;;;;;;;;;;;i;;;i;+@############@,,:,..:;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;:i####
######+.,,,..*M###@*;;;;;::;;;:;;:,.::.,:::;:;::;:::::.,;,.::;;;;;;;;;i;i;iiW##############;,:;:,;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;:;z###
######@n:,*n@######x;;;;;;:;;;:;;:,.::`.:,,:;:i;::,.,:,.::.::i;;;;;;;;;;;;;n###############+.:;i:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;:ix###
########@@##########+;;;;;::;;:;;:,.::..;.`:::;;:;,`,:,.;:.:;i;;;;;i;;;ii;*@################.:;;:;;;;;;;;;;;;;;;;;;;;;;:;:;;;;;;;;;;;;:iW###
####################W;;;;;;;;;;:;;:`,;.`::`.;:;::;..;:,,;:.:;i;i;;;;;;;ii;n################z,;ii;;;;;;;;;;;;;;;;;;;;;;i:;:;;;;;;;;;;;;:*@###
######################;;;;;;:;;:;::..::`,::`.::;:.`:;,.:;,.;;iiii;;;;iiii*@################x:;iiii;iiii;;;iiiiiii;;;;ii;;;;iiiiii;;;;;;+@###
#####################Wi;;;;;;;;;;;;,`,;,`,;:,::;:::;,`,;:.:;iii;;;;;;iiiiW#################W::iiiiiiiiiiiiiiiiiiiiii;ii;;;;iiiiiiiiii:;#####
######################z;;;;;;:;;;;;:,`::,`.:;::;:;:.`,;;.,;;*;;;;;;iiiiix##################@;:iiiiiiiiiiiiiiiiiiiiiiiii;;;iiiiiiiii;i:in####
########################;;;;;;::;;;::,.:;:...::;:,`.,::..;;ii;i;;;;iiiiz####################i:iiiiiiiiiiiiiiiiiiiiiiiiii;iiiiiiiiiiii:iW####
#######################@#;;;;;;:::;;::,`,:::,::;::::;,`.:;ii;i;;;iiiii+@####################z:;*iiiiiiiiiiiiiiiiiiiiiiii;iiiiiiiiiii;;+@####
########################@+;;;;;::::;;;:,..,:;;:;:;:,.`,;;iii;;;;iiiii*@#####################M::*******iiiiiiiiiiiiiiiiiiiiiiiiiiiiii;;n#####
#########################@z;;;;;::::;;;::,..`,:;::`.,:;;ii;;;;;iiiii*M######################@::***************ii*******iii*******i**:iW#####
###########################xi;:;;:::::;;:;:;:::;;;::;;ii;;;;;iiiiii#@########################i:*+**+*****************+*************i;+@#####
############################W+::;;:::::::;;::;:::;;;;i;::;;;;iiii*z@#########################n,++++++++++++++++++++++++************;iz######
##############################n;::::::::,,::;;;;;;i;:::;;;;;;;;i+M###########################@;##############++++++++#+++++++++++++;+M######
###############################Wz;:,::::::::::;;;;;;:::;;;;;;i+M###############################+#z#########zzzzzzzzz+*+#########+#*in#######
#################################@x*:,,::::::;;;;;;;;;;;;;;;*x@################################@@@@WWMMxxnnzz####++*::*++++**++zn+;z@#######
####################################Wn+;:,,::::::::::;;;;*#x@######################################################@@@WWWMMxnnznn#x@########
########################################Wn+i:::::::;i+#xW###################################################################################
############################################@WWWWWW@@#######################################################################################