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