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