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