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