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