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