@@@@@@@@@@@@#########$$$#######$&&%%%=%=???>>>????==%%%%%&&&&$&&$#$$&&%&&&$##@#@@@@########&=);!*>?=%%?*!)=##########$%>)!;;;;;;*&#####$$$$$$$$$$#####$$$$$$$$$$
@@@@@@@@@@@@#######$##$$######$$&&%%==??>>>>>???>??===%%&&&$&&&$###&&&&&%$$$##############$%?!***!)?=%%?!!?&######$%>*!;;::::::;)%##$$$$$$$$$$$$$###$$$$$&&$$$$$
@@@@@@@@@@@##################$$$$&%%=?>>>>>>>>?????===%&&&&$&&&$###$$$&&&$$$########@####$%=***)>>+*>%%=+!>&####$%????>!:::::;;;)%$$$$$$$$$$$$$$###$$$$$$$&$$$$$
@@@@@@@@@@###$################$$$&%%=>+++>>>+>+>>??==%%%&&$$$&$####$&$&&$$&$#############&%=!)>)*+??+>%&=*+>###$=?==%%=!:::::;;;>%$$$$$$$$$$$$$###$$$$$$$$&&&&$$
@@@@@@@@@@###$################$$$&&&=>>>>+++>>>>>>?=%%%%%&$$$$$$###$&&&$##$#############$%=>!!+=?+)+>??%%*!*$#$=?=%%%%=!:::::;;;>%$$$$$$$$$$$$###$$$$$$$$$&&&&&&
@@@@@@@@@###############$$$###$$$&&&%?>>>>++>>>>>>?==%&%%%$#$##$$$$$&%&$################%=>)***+===?+)+>!^^--)=?=%%&&%?*!!;;:;;!>%$$$$$$$$$$$#$#$$$$$$$$$$$&&&&&
@@@@@@@@@@#############$$$$$$#$$#&&&&&???>>>>>>???===%%&%%&$$####$$$&%&################$%=?>)*)>?=%%%=>**^',,*?=%%%%=?>+>>>?>)!!?&$$$$$$$$$$$$$#$$$&&&&&$&&&&&&$
@@@@@@@@@@@###########$$$$$$$$$$#&&&&&&=??>>+>>?=??====%%=&#######$$&&$################$&%===%===%&&&??>*^..^*+>>>>>>??=%%%%%>!!?&&&$$$$$$$$$$$$$$&&&&&&&$$&&$$$
@@@@@@@@@@@@######@##$$$$#$$$&&$#$$$$$&%=?>>>+>??==%%%=%&&$########&&$$################$&&$$###$$&&$&&&%?!.^:?==??====%%%%%%?*!!=&$&$$$$$$$$$$$$$&&&&&&&&&$$$$$$
@@@@@@@@@@###########$$$$$$$$$&$$$#$$$&%==?>>>>??==%%%%&&$$$#####$$&$$#################$#######$$$&&%&&%%%>)=++&$&%%%%%%%%%=+!!*=&&&$$$$$$$$$$$$&&&&&&&&&$&$$$&&
@@@@@@@@@@@@#########$$&$$$$&&&&&&$$$&&=????>>>???==%%%%&&$$$$$#$$$$$$##################@#####$$&&&&%%%%%%%&$&+*>&&&%%%%%%%?)!!!=&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&
@@@@@@@@@@@@@######&&&&&&$&&>>>>=%&$&&%?>>>>>>>?=?=====%&&&$$$$$$$$$$$$#############@@@####$$&&&$&%%&%%%%%%%%&%**)>========?+!!*%&&&$$$$$$$$$$&&&&&&&&&&$$$&%&&&
@@@@@@@@@@@@@@####%+++?>+))***))+>??%%=??>>>>>>?========%%%&$$$$$$$$$$$$###########@@@#@#####$&&&&&%%&%%%&%%%&&+**)))+>>>?=?>*!)&$&&$$$$$$$$$$&&&&&&&&&$$&&&&&%%
@@@@@@@@@@@@@@@##$+**!!!!;;;;;!!*))>>?=???>>????====%%%%==%&$#$$$$$#$#$$$#########@@@#@@#####@#$&&$$%%&%%&&%%&&%)!*********)*!!?&$&&&$$$$$$$&&&&&&&&&&&&&&&&&&%%
@@@@@@@@@@@@@@@@#+*!!;;;;:;;;;;;!**)+??????????====%%%%%===%$$##$$##$##$$$######@@@@@@@@######@#$$$#$&&&&&&&&$$$%>!!!!!!!!!!!*=&&&&&&$$$$$$$$&&&&&&&&&&%%%%&&&%%
@@@@@@@@@@@@@@@@$*!;;;::::::;;;;!!*))>?????????%%==%%&&&%%==%$#####$$###$$$####@@@@@@@@@@@@@@@@@#####$$$&&&&$#$#$&=)!;;;!**!*?&$$&&&&$$$$$$$&&&&&&&&&&%%=%%%&%%%
@@@@@@@@@@@@@@@@#+!!;:::::::;;;;!!*))>??=??>>??====%&&$$&&%%%$###$$$$#####$$###@#@@@@@@@@@@@@############$$###$&&%%%?*!!**!*>%$$$$$&&$$$$$$&&&&&&&&&%%%%%%%=====
@@@@@@@@@@@@@@@@@&+)!;;;;::;!!!!***)+????>???=?=??=&&&$$$&%%%$$#$$$#$$#$$##$#$##@@@@@@@@@@@#$$$&$$###########$$&%%=%&=****!+%$#$$$$$&$$$$$&&&&&%&&&%&%%%&%======
@@@@@@@@@@@@@@@#@#$=!!!*!!!!!!!****+>???>????=??====%&$$$&&&$$#$$$$#$$$#$###$###@@@@@@@@@#%>)**)+?%%&$#######$%%%%%=%&=**!*%$###$$$$&$$$$&&&%%&%&&&&&&&&&%==???=
@@@@@@@@@@@@@@@#####+!;!;;;!)***))))+>???????=??%&%%=&&$$$$$##$$$$$$$$$$##$$$##@@@@@@@@@&);:-----:;!)>?%$####$%======%&=**=$####$$$$&&$$&&&%%%%&%&&&&%&&&===???=
@@@@@@@@@@@@@@@#@###%)!!!!*+>+)**))))+>>>>>?>>??=%%%=%$$$$####$##$##$$$$#$$$$#@@@@@@@@@=;:-~~~~~^^^~~-;)?$##&&%=======%$=?$##$##$$$$$&&&&&&%%%&%&&&&%%&&%=?????=
@@@@@@@@@@@@@@@@$%=?>+)**)+>>?>)*))))++>>>?>>>>?=====%$$$####$############$$##@@@@@@@@=;:-~~~^^^^^^^^^~-*=$#&%%%======%%$$###$$#$$$$$$&&&&%%%%%%&&&&%&&&%==??=?=
@@@@@@@@@@@@@@#$?++)+))***+?=?=?++++))++>?==?????=???&$$##################$$#@@@@@@@@&!:-~~^^^^,,,,,,^^~:)%#$&=%=======%%$$#$&%$$$$&&$$&%%%%=%%%%&&%%&&%====????
@@@@@@@@@@@##$%?>)********)+>?=%?>>>+))+>??==?%======%$###################$#@@@@@@@@$*:--~~^^^,,,,,,,,^~-;>&$&%%%%=%=%%%%%&&&%=%$$&&&&$$&%%%%%%%%%%%&&%%%====???
@@@@@@@@@#%??>>>+****!!!!***)>?%&%?>>>++>??===%%%%%%%&$$$$$$################@@@@@@@#+:-~~~^^^,,,,,,,,,^~-:)=$$$&&%%%%=%%%%%&%??>%&&&&&&$$&%%%====%%%&&%%%%%==???
@@@@@@@@$?>++)++)***!!!!!!!**+?%%%=?>>+>??====%%&%&&%$$$$$#################@@@@@@@#>:-~~~^^^,,,,,,,,,,^~-:!>%&$$$$&%&%%%%%&&%>++?&&&%&&&&$%%%%====%%%%%%%%%=??=?
@@@@@@@#=>+))**)***!!!;!!!!!*+=%=%%=??>>??====%&&%&&&$$$$$$$$#$$#########$#@@@@@@@$=+;~^^^^^,,,,,,,,,^^~-:;)=&&###$&$&&&%%&$$=)))&&%%%%&&$$%=========%%%%%%%=???
@@@@@@@&+))**!!!!***!!!!!!!*)+?=%%=%????===%%%%&&&&&&$$$$$$$$$$$$######$$$#@@@@@@%=&&=*-~^^^^,,,,,,,,^~~-:;*>&&####$$$$$&$&##&>**=&%%%%%&&$&======?====%%%%%=???
@@@@@@#=)***!!!!!*****!**)))++?%==%%%%=====%&&%&&&&%&$$$$$$$$$$$$$$##$$$$##@@@@@$))>%&=*-~^^^^,,,,,,,^^~-:;!+%$$########$#$##$=**?&&%%%%%&&$%=???????==%%%%%=???
@@@##%?>)****!!!!!*))+)))>>>>?%&%=%&$$$&%%%&&&&&&&&%$$$$$$$$$$$$$$$$######@@@@@@&?>+>=%+:-~~~~~---~^^^^~-:;!+%$###############&)*>&&%%%%%&&$&????>>>??==%%&%?>>?
@$?>++++++++*!!!!*)+?>++>?>??%%&&&&&$##$$$&&&&$$&&%$$$$$$$$$$$$$$$######@@@@@@@@$%>**>?>;--~-;+?=%%=?>+!::;!+%$##@#############>)+&&&%%%%%&$$=>>>>>>??===%%???>?
@%)))))+++>******)+>===?=??%&&&&$$&%$###$$&&&$$$$$$$$$$$$$$$$$$$$########@@@@@@@$=+;;!+?!---;)?%%&&%%=%=?!;*+=$##@##@@#########=)+&&&%%%%%&$$%>>++>+>?????>>????
@&))+)))+++**)+))++?&&%%==%&%%&&&&%&$#####$&&&$##$$$$$$$$$$$$$$$$##@@######@@#@#%?*;;!+>!~~-!+>??>+)!;;*?%+*+=$##@@@@@######@##%++&&$&&&&&&$$&?>>++>>?>??>>>>???
@$+)+))******++))++?%$$&&&&%%%%&$$&&$#####$$$$$#$$$$$$$$$$$$$$$$$###########@##&&%?+!*)+:,^:*>>>+)****;:;+=++=###@@@@@@@#@@@@##&>?$$$$&&$&&$$&?>>++>>>>>>++>>???
@$=>)!!!!!!**+)*))+>%&&&&&%%%%%&###$$######$########$$$$$$$$$$$$######$$$$###@#%$##$$&?:,,~;*)++*;::*>>+*!+=>=$##@@@@@@@#@@##@#&==$$##$$$$$$#$=>+++>?>++>>>>>?=?
@@$=*!!!;;!!!)**)+>>&$&&&%%%%&&$###########$##########$$$$$$$$$$###$$$$$&$$###=+&$$&=*:^,^:;;;++)!::*?%%?+)>?=$###@@@@@@@@@##@#$%%$$##$$$$$##$=>+++>>+++>>>???==
@@@=*!!!;;;;!***)++>$#$$$$$$&&&$################$$###$$$$$$$$$$$##$$$&$&&$$##=!!**!;-~^,~-:--->=>;-:+=&&%=>>>?&##@@@@@@@@@@@#@#$&&$####$$$$##$?++++++++++>>?====
@@##+*!!;;;;!!**)+>%######$#&&&$############$$##$$$##$$$$$$$$$$$#$&&&$&&&$##&;:--~~~^^^~::--~~*&$&=??%&&%=>>>?%$##@@@@@@@@@@@##$&$###$$$$$##$$?++++)++++++>??==?
@@@@%>+*;;;;;;!+?=$########$$&&#############$#$##$$$$$$$$$$$$$$$$$&&&&&&&$##>;:-~~~^^^~:::-~^^-+&$$$&$$&=>+++>=$####@@@@@#@@###$$##$$&&&&$#$$&?++>+))))+++>????>
#$##&>+)!;;;!!*%&&&##########$$################$$$$$$$$$$$$$$$$$$$&&&&&&&&##);:-~~~,^~-:;:-^,,^-*?&$#$%)!!!*)+=&######@#@@#####$$#$&%%%%&$$$$&=++++++))+++>>>>>>
#%==>)*!!!!****%$&&############################$$$$$$$$$$$$$$$$$$$&&%&&&&&$$)!:--;;--:;;;:~^,,,^^-;*+>+;--:;*)?%$#@@#@@@###@###$##&%%%%%&&&&&&%=++++++))+++>>++>
@&?>*!!!;;!)+?=$&%&#######################$####$$$$$$$$$$$$$$$$$$$#&&&&$#$&&)!:--)>++)!;;:~^,,,,,,^^~-----:;!)>=$#@@@@@@@@@@#####$%%%%%%&&&&&&%&=>>>++))++>>>+>>
@#=+*!!;;;!*+=&$&&&#######################$$###$$$$$$$$$$$$$$$$$$$##$$#####&)!:-->=?&&+!;:~^,,,,,,,,,^~~-:;!*)>=&##@@@@@@@@######&%%%%=%%%&&&&&&&?>>+++++>+++++)
@@&>)!!!!!!)%&&$#############################$$$$$$$$$$$$$$$$$$$$$########@$)!:--)==?=&+*;~^^,,,,^^^~~-::;!*)+>=&$##@@##@@######$&%%%%%%%%&%%&&%&%?>>++++++++))*
@@#=)*++))>&$$$#############################$$$$$$$$$$$$$$$$$&$$$#########@$);:--;!)!;*>+:^^^^^^~~--:;;!!*))+>?=&$####@##########&%%&&&&&&&%&&&&%%??>>>++)))**!*
@###==%&&&$$$$##############################$$$$$$$$$$$&%$$&****)%#$######@$);::!:--~~~-~^,^^~~--:;;!!*))++>??=%&$###############$&&$$$$$&&&$$&&%%???>++)))***!!
##@#=&&$#$$&&#####################=^+$$$$$$$$$$$$$$$$$$);*=%--~--)$%#####@@&)!+%==++!~~^^,,^~--:;!!*))++>>??==%%$$########$######$&$$$##$$$$$$&%%=???>++)))****!
#@@$=$&###$$$####################$^'.+:=$$$$$$$$$$=)>&&*^^^;:~~--:=&&###@@@&)>&&&%%%=+-~^^^~~::;!*)++>>???==%%%&$$$$#####$########$$########$$$%==?>>+++)))**!!!
#@#=&$&###$$#####################&,...',%$$$$$$%&&?:^~;!-^^^^^~~-:*&$$##@@@%)%$$#$&&&%?:-~~--:;!*)+>>???===%%%%&&&%%#####$###################$$%==>>+++++)****!*
@@$=$$&$$$#######################%-:,...!$$$=)+;:::~^,^,,,,^^~~-:;!)%####@@=)?==%&$$$&&=;-::;;!*)++>>???===%%%%&&=?&$$######@#################$&=>))++++)))*)++)
#@$%$$&$$$#$#####################%!-^^^,:$$&+::-:^,,,,,,,,^^^~~-:;!)?$###@@?)==?>>>?%&$&=!;;!!*))++>>???====%%%&%?&&&%&$###@#@################$&?*!*+)!)))))+>++
@@$%$%*!~-)>))+>>?=%%&$$#########%!^~---;$%!-^,,,^,,,,,,,^^^^~-::!+?&$#@@@@?+?&%==????=%&=*****))+++>>>???==%%%%=>+*>==$#######@##############$%)!;!*;:)+))++>++
@@#&$+!;:;!?**!!;;;;;!!!*)++>??===;~-:-:)&!^^,,,,,,,,,,,,^^^^~-:)?&$$###@@@=+>%$$&&&%%%=?))****)))+++>>>??==%%&=+)))==%$#####@@###############$&)!:;-~~*+**+++++
@@@$$?>*>))&==??>++)**!!!!;!!!;;;;^^---:>+;:--^^,,,,,,,,,^^^-:*>%&$$$####@@%)*)>=%&$&%=>)******))))+++>>??=%&$$>!*!!*?&#####@@##@#############$&)!::~~:!:~-+++))
@@@###$$&$$###$$$&&&%%==??>>>+)**-^~~~~!>*!!!!******!~^^^^~;)?%$$&&&&&&$###$)!::--;*+++)*****))))))+++>>?=%&$##))>++*%#########################$+!:-~^^^^^!+)*))
@@@@@#####@############$$$&&%%=?+^^^^^~*~.;+++)****!+;,^^~*=&$$$$$&&&&&$####)!;::-~-:;!!***)))))))++>>??=%&$###>)?*>*%########################$&+!:-~^^^^^::--!*
@#########################$$&&%=;,^,,,,.'.-%%%%%%===%!^^^*%$#####$&&&&$$##$#?+)*!;:::;;!**)))+++++>>??==%&$###@$*!!;?#########################$%)!:-~^^,,,,,,^~;
@######@######################$),,,...'..^;%%%%&&&&&&-^^:?$######$$&&$$$$&$#$=?>+)**!!***))+++>>>??==%%&&$###@@@#??$@#@@#@#@##################$=);:-~~^^,,,,,^:!
@@###########################$>',..''..^-;)?=%%?-:;;;^^^!=$######$$$$&$$&$##@#$&%=?>++++>>>???====%%&&&$#####@@@@&$#@###########$$###########$$?*;-~~^^^^,,,,,~:
@@###########################&.''''..,-;!+++>?=%!,^,^^^^!=########$$$$$$##@@@@@##$&%%%%%%%%%%%%&&&&&$$$#####@@@##*+#####$&&$&&%%&$$#########$$&)!:-~~^^^^^,,,,;;
@@###########################)'''..'.,;!=$?)!!!*+~,,^^^~-%#########$$$$#@@@@@@@@@@@@###$$$&&&$$$$$$$$$###$##@@@%)>+*$#####$&%%%&&$#########$$&>*;:-~~^^~^^,.,,,,
@@@#########################$:'.,^~:;!!;)&&+!;:-::^^^^^~->$$#######$$$##@@@@@@@@@@@@@@###$$$$$$$$$$$$$$$$$$#@@&):!>!%$######$$$$$########$$$&=+*:-~~^^^^^^,.,,,^
@@##########################?..,:*)**)*!!*==!-~^^~~^^^^~-*$$$######$$$$###@@@@@@@@@@@@####$$$$$$$$$$$$$$$$$#@#+*!-:*!=######$$######$$$$$$$&%?)!-~~~~^^^^^,....-
@###########################-.^*)*)++)*!!;;*;-~^,^^^^^^~-!&#$######$$$$$####@@@@@@@@@@#####$$$$$$$$$$$&&&$$##+)!!:;:)=%###########$$&&&&&$$&%>*:~~^^^^^^^^^...,,
@##########################$--*))))+)!!;;;:--~^^,,,,^^^~-!?$$######$$$$$$$##@@@@@@@@@@#####$$$$&&&&&&&&&&&$##=>!!:*!+>=##@#@@####$&&&&&$#$$&?+;~~~^^^^^^^^,...,~
@##########################&*+)!!!*!;;;::--~^^,,....,^~~-!+%$$#####$$$$$$$$##@@@@@@@@@#####$$&&&&&&&&%%%&&$#@#?!>!)!)=###@###@#$&&$$$$###$&=+!~~^^^^,,^^^,,.,.,~
@##########################%)*!;-:--------~^^,,......^~~-!>>%$$$####$##$$$$##@@@@@@@@#####$$&&%%%%%%%%%%&&$###?+=!)?>+########$$$$$$####$&?>*-~~^^,^,,,,,,,..,,,
@##########################%!!:-~^^~^~-~~^^,,...'''''^~~:*>??%&$####$$&&&&$##@@@@@@@######$&&%%%%%%===%%%&$####%>=??$#########$$&&&&$$$$&=>):~^^^,,,,,,,,,,..,,:
@##########################>;;-^,^,,^^^^,,.....''''''.~-:)>?%&####$$&%%%&$$##@@@@@@####$$$$&%%%========%%&$####&=!>?$########$$&&&$$$$$$&?+;~^^,,,,,,,,,,,..,,^:
@##########################;^--^,..,,........'''''''''~-!>=&$$####$&&$$####@@$&&&&$$$$$$$$&&%%=========%%&&$#$##$?%#########$&&%=%%&$$$&&=)~~^^,,,,,,,,,,,.,,^;)
###########################=!~,.'.,.'.......''''''''''^:)%$#########@@@@@@@@#&&&%%%%%&&&$&&%%====????======??=&############$$&%%%%%%&$$&&=;-^^,,,,,,,,,,,.,,~;*)
###########################=:^,^^.'''''''''''''''''''',;?$##$####@@@@@@@@@##$&$$$$&&&&%%%&&%%====??====??====%%#@##########$$&%%%%%%&&$$&=*:^^,,,,,,,,,,..,^!**)
###########################%+!-^.'''''''''''''''''''''.;=$######@@@@@@@@####$$$$$$$$$$&&%%%&%=====%===%%&&&%==%$@#####$$$##$&$$&%%&&&$$$&=>;^^,,,,,,,,,.,,,^;**)
############################%>!^''''''''''''''''''''''.!=$$$###@@@@@@######@#$$$&&&$$$$$$&%%%%%%%%%%&&&&&&&&%%%&##@##$$&&&&$#&$#$$$$$$$$&%=;^,,,,,,,,,..,,^:!*))
#############################$=:~.''''.'''''''`'''''''.;>&$$########$&$####@#$&=???=%&&&$$&&=?>>%&&$$$&&&&&$&%%&#####$&&%%%%$$$$#####$$$&&=-^,,,,,,,,..,,^~:))))
###############################$=)-.,,''''''''`''''''.,:+=$#######$&%&$#@@@@#&&=??????===%=&&&&%%%%%%%%%&&&&&%%&#@####$&%=%%%$########$$$&+~,,,,,,,,.,,,:***)*))
@###############################$?+*~'.''''''''''''.,,~;*>&$#####$&&$##@@@@@#$$$&&%&&&&%==%&#$$$%=%=??======%%%&#@#@#@#$&%%$$$########$$&=:^,,,,,,,,,,^-)+>??++)
#################################$%>+;,,.'''''''''.^~^-;*)?&$######$&$###########$$$%??=&&&$$$$$%%==%%=??======&####@###$$&$########$$$$=*^,,,,,.,,,^^~;)>>????>
###################################&=>)~,,.,,..'',--^~-;!*+%$#####$$&%&$$$$$###@##$&%=%&&%&&=??=%==%==&%%%%%%&&&%&##################$$$?*^,,,.,.,,^)>!*>>?>>?>>>
####################################$%?+;,-~..''^::~^-~-:;+&#######&%%%%&&&$#####$&&%%%%%%&?+))+%?)?=?=&&&$###$$&%&$#################$%*^,,,.,,,^^)===?>>>>???>>
#####################################$&=+*^.^,'^;;~,^-~;:!?$#########&&$$&$###@##$&%%%%%&&?+*!*)??)+==%&&$#####$&%&$##@##############$)^,,,,,,^^~-?%%%%?>>??=?>>
######################################$=>*;-^.~;;~.,~-~!+!>$##########$#######@@#$&&%%&&=)!;*!;!+=+*>=%&&#@#@##$$$####@@#############?~,,,,^!?%>+??%%%%%=?>?=?>?
#######################################=?>)^,-;-..-;--~)!!)%###@@@#######@@#######&&&&%>!;::;!:;*=?+>%%&$############@@@#@##########%-^,,^-!$$$$&$=?%%=====????=
######################################@#?);:^^.,:**--~~+!:)=$####@#$$$$#@@@######$$&%>)!;:---:-:;+=?=%%&$###$######@#@######@@#####=:^,,:?%$####$$$==%%======?==
#####################################@#&=);^.^!+)!---~-*;!>=&$####@######@@@####$$$%+*;::---~-~-:!?==%%&&#$$$###############@@####=;~^^:&#######$#$$=%%%%%==%%%%
#####################################$&&~,~:!!)!-^~~:~-)*+)>=$#####@#####@@@#@#####&*!::-^~~::-~-:*==%%&%&&%&$$#######$####@@##$&?!~,^-*?##########$&=%%%%%=%%%%
##################################$&%$$#?>??+~^,,~~~-~->$$?>%$########$$##########$$);:-~:;:!-!):;:*=%?+)%$%%&$$$$$$$$#$#####$&%>*-~~->&#########$##$==%%%%==%%&
################################$&%&$####>:^^~,^~-~~-~->$#@#$$$#######$$$$#########$+::-^~~:;~^~--~:!!!!*>$&&%&$$$&&$$$$#####$%?):-!>)&##########$#$$&?%%%%%%&&&
###############################$&&$$#####;**;:~~~~~~-~-+%#@@$&$##################$$$*:~::---~~-^:::!:::;!)$%%$$####$$$$#####$&&%?+=$$?$##########&$$&&%?&&&&&&&&
##############################&&&&$######~~!))!-~~~~-~-)=&##&%&&#########@@@@##$%=$?;:!~;~--.^~-:*;~--::;!%$&$$#############$&&&&$$##########$&$#&%&%%&%=&&&&&&&
#############################&%&&&$$#$$#@>.^:;--~~~~-~-*?%$##%=%&$$######@@@@#$&&&>!:-~-!:~~^^^~:*:;;--:;!>$=%$##@@@###$###$$$$$&=%#######$$$&&&$&=%%%%%==&&&&&&
############################&%%&&&&$$$$##%:'.~^,~~~~~~-!?=&$#$>%%&&$$#####$$&&%=>*;::;!:~^^~:~-^-):----:;!)&&%$#@@@##$&$#########&&###$#$#$$&&%%&&?==%%%%=%&&&&&
###########################$=%%%&&&&$$$##%::'.~~~~~~~~~;?>=&$#>==&%%&&$$&&%=?+)*!;;::::-:)?!*-!++::*;--:;!*?#&$#####$&&&$####&$##$$#$$####$$&%==&%?>%%%%&%=&&&&&
###########################=%%%%%%&&&&###=:::'',^^~~~~~:=>>=&$=>?%=======?>+))*!;;:::-;)*:--*!:;:!;---::;!*+%#$$###$$&$######%=&###$$#####$&&%==%%=+=%%%%&%=&$&$
##########################==%%%%%%%&&&###>!^;:,.^^~~~~~-=>++?&%>>=????>>+))**!!!;;;::-:;;~!*:;!:-)*:--::;!*+?$#$##$$$$######@$?%##$$$#####$&%=??%&=>>%%%%%%?%&&&
#########################&?=%%%%%%=%%&###):!,;!~^~~~~~~-?=>++?%++??>++))**!!;;;;;;;::::-:!):!;!);----:::;!*)>%$###$$$###@@####%&##$&$####$$$%=??=&=?)=%%%%=??&&&
########################$?==%%%%%%?=%&###+^*~,;:~~~~~~~->&%?++=*)+>+))*!!;;;:::::;;::::-----;;------:::;;;!*+?&##############$=$$&&&$$###$$&%=??=&==)>%%%%=?+%&&
########################??==%%%%%=>?=&###=.:*.,:~~~~~~~-)#$&=+?))+>+)*!;;::::::::::;;:::-----------::::;;;;!*)?%$#$$$#########$&%%%%&$$##$$&%=>>=&==++%%==?>+>&&
#######################%>?===%%%==>>?&$##$^,!:.,~~~~~~~-!###$=?>++>+*!;;::-----:::::;;:::-~~~~---::::::::::;;!*+=&$$$$$#######&=??==%&$##$$&%?>>?%==>)===??>+)&$
######################$>>?====%%%=?>?&$##%;'^*-.~~~~~~~~:$###&?>+)>)*!;::---------::;;;;:--~~~--:::::::::::::;;!)>=&&$$$#####&?>>>>?=&$$$$&%=?>+>==?>)>=??>+)*?$
######################?>>?====%%%=?>?&$##)!~'-*-~~~~~~~~-&###$==+++)!;;:----~~-----::;;;;:--~--:::::::::-----:::!*+?=%&&$$$&&>))))+>?%&$$$&%=?>+)>=?>+)?>>+))**&
#####################&+>>??===%%%==>=&$$$*:*..:;~~~~~~-~~%$$$#%=+++*!;::--~~~~~~----::;;;;:-~--::;::::---------::;!)>?=%&=%%?)****)+>=%&&&%===>)))>?>+*+++)))**=
#####################++>>>??===%===>%&$$$>,!;',;~~~~~~-~~?$$$#&=>+)*;::--~~~~~~~~~--::;;;;:---:;;;:::-----~~----::;!)+?=%==?)******)+>=%%=?==?+**))>?+)*)))))**+
####################%)++>>??=======>%$$$$%,~*-.^--------~+$$$#&%>+)+);-~~~~~^^^~~~~--::;;!;---:;;;::---~~~~~~~---::;!)+??>=)*))******))+>>?==>)***))=>)***)))))*
###################$+++++>>??=====>?%&$$$=!.-)^.~~-----~-*$$##$&>+)))));-~^^^^^^^~~--::;;!!:--;;;::---~~~~~~~~~---::;!)>+>)*)+))*!**))))>=%=?+*****)?>)***))++)*
###################=))+++++>>?????+>=&&&%>)~.;*,,-------:-%##$$&%=>>))*))!:^^^^^^~~~--:;;!!;-:!;;::--~~~^^^^^~~~------!+>+*+>>+)*!!*))+)?%=?>)*!!!**>>+**))+>++)
##################$))))))+++>>>??>)+>???>:*).,*;~--------~*#%%$$&&&=>)+*))**:^^~^^~~--::;!!!:;!;;::--~~~^^^^^^~~~~~-!++>+*+>?>+)*!!*))))=%?>)*!!*!!!+>+)*)>>>>>+
##################=))))))))+++>>%)))+++++^!):.-*:--------~*&?=$$$$$$&=>))))!*)+?!^^~--::;!**:!!;;:---~~^^^^^^^^^-!)++++>>)???>+)*!!!***)%%>)******!!)>+)*)>???>>
##################))))*))))))++?=+++++++?^:*),,;:--------~+=>=$$$$$$$$&+>+!))==>++!~~-::;;!*;!!;::--~~^^^^,,,^:)++>++>+?++???>)**!!!***+%=+***)))*!!*>+))*>??>>>
#################%))**)*))))))+&=????>>>&-~**;.~;::::-----;?>&#$$$$$$$%?$%>+=====>+)*--:;;!)!*!;::--~~^^,^^:!)+)+))+>?=??+>??+**!!!!!!!>=?+**+>+)*!!!>+)**>>>>>+
#################>)))*)))))))+&$&&%%%===$).;*)^,::::::::-::>&##$$$$$$$%?$$$%%==%%==>))!-:;!)**!;::--~~^^-;*)));)>>?=%$$??>>>>)*!!!!!!!!++++*+>>>+*!!!++))*)++>++
################$++))))))++)+%##$$$&&&&&#?.~!*!,-:::::::::-+#@#$$$$$$$=%$$$%=%&&&%%=?+)+:;!))*!;:--~~-;)+))*)+??=&$####=??>+))***!!!!!!>>+>)>>>+)*!!!)>))**++++)
################$=?>+)++++++?$##$$$$$$$&#+:.;!)~~:::::::::->@@##$$$$$$=%$#&%%&$&&&&&%=>)+:;*)*!;-~~:****)*)+>=&$$$$####=%%>++>>)****!!!+)))+++)**!****?+)**)))))
##################$&=>>>>>>>=##$&$$####$&*).~!*!~:::::::::;;#@##$$####%%$$%=&$$$&&&&&%=?+>~!+*;-~-*++)))))+?&$#########=%$?++?=?>+)**!!>>+)+**!**))***?+))******
####################$%=??>>?%##$&$$#####%!);,;!*::::::::::::=###$#####%&#&%%&$$$&$$$&&%==?)-)!--*>>))))+>>??&$#########=&#&>>=&&%=>+)**))*)+!!*)+++)**+?+)*!!!!!
######################$%=??=%##$&%&$####>;*)^-!*!;;;;;:::::;+$#$######%&#&%%&&&&&&&$$$&%%==!-~:+?+))++>>>>>?%$#########=&##&%&$$$$&=?>>%?)!+!*)++>+))))=>))!!!!!
####################@@#$&%%%%####&??=&$#;!*)!~;!!;;;;;;;:::;*&########&&$&%%%===%&&&&$$$%%%>+*+>+>??????>>>>=&#########=$##########$$$$&=>**)*+++++)+>>%>+)!!!!!
######################@@#$$&&&##@@#&=?=&:*!)+-:!!;;;;;;;;;;;!%########&&$&%%=>++>?=%&&$$$&=))+??%%%%%%%%%=??=&#########=$##@###########$$&=>?+>>>+++>%$&?>)*!!!*
###################$###@@##$$&$##@@###&%*;**)!:!!!!;;;;;;;;;!=########&%#&%&%%?+)))+++>>?%&%=?%&&$$$$&&&&&%%=&#########=$#@@@@@@@##########&$&%%%=?=%$#$=>+****)
####################$###@@@##$$$##@@###$+-)***!!!!!!!;;;;;;;!>########$%#&&&&&&%%%%%%%%&$&&$$&%&#$$#####$$&%%&#########?##@@#@@@@@@@#####$##############%?>+))++
#####################$##@@@@@@#####@###&+*!)***!!!!!!!;;;;;;!+########$=#&%&&$$&&&&&&&$$%%###$%=%$$$$$$$$$$&%&########$=##@#########@@####$############$%=????==
######################$##@@@@@@@######@%++*)******!!!!!!!;;!!)$########=#$%=%&$$$$$$$$$%=&###$&&==%&&$$$$$$&%&########&%##@##$$$$$$$$#######@@###$$###$$%%%%&$$&
###########################@@@@@@@@@@@@=+++)********!!!!!!!!!*=########%##&=?==%&&&&&%%=&$@#$$$&%%??==%%&&&%%&########&&###@#$##########$##@##$$$$####$&&&&$###$
###########################@@@@@@@@@@@#?++)))********!!!!!!!!*!########%$#&%?>>???????=&&#@$&$&$&&%=>>>>==%%%$########%$###@@#######$&&&%$###########$$$$$######
#############################@@@@@@@@#$?++)))))********!!!!!!*+########&$##&%?>>++))+?&&$@@$&&&&&&&&%?+))>=%&$@#######=#####@#$&%&%=?>>)+?&$#########$$#########
##########################@####@@@@@@#$>+++))))))*******!!!!!*+$#######$%##&%%==????=&&$@@@&%&&&&&&&&&%%==%&$########$%#####$%=???>>+))+*>>?=&$##@@@############
#########################@@@@####@@@@#&>+++))))))))******!!!!*!>########%#@$&%%%%%%&&&#@@@@%>%&&&&&&&&&&&&&&$########&&#####&==??>>+*****+>>>?=%$##@#@@#########
#########################@@@@@@@@@@@@@>>>+++))))))))*****!!!!!;=########&$@@&%%%&&&&$#@@@##%?=&&&&&&&&&&&&&$#########%$#####&???>+++>+)*+>+>??==&$###@@@@#######
#########################@#@@@@@@@@@@#+?>+++++)))))))*****!!!!*)########$&#@#&&&&&$#@@@@###%?=%$&&&&&&&&&$$#@########%######$?+)**!!!!***)++>?=%%%&#@#########@@
############################@@@@@@@@@#+?>+++++))))))))****!!!**:>########%#@@$$##@@@@@@@###=>?=#&&&&&&&&$$#@########&&######%!-~^^^~~-:;!!**)+>=%&$#@@######@@@@
##########################$######@@@@#+?>>+++++++))))))***!!!!!::########%#@@@@@@@@@@@#####=>>?##$&&&&&$$#@#########%#######-,,,,,,,....,^~:!)+?=&$#@@@@@@@@@@@@
#########################$$$###$######)=?>>++++++))))))***!!!!!;,&#######&$#@@@@@@@########=)+?#@#&$&&$$#@@@#######$%######&~,,.........,,,,,^-*?%$@@@@@@@@@@@@@
#########################$$$##$$$#####*=?>>>++++++)))))***!!!!!!^?#######$&#@@@@@@####@@###=+*>$#@#&&&$@@@@@@@#####&$######=,...............,,^^~)&@@@@@@@@@@@@#