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