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