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