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