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