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