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