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