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