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