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