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