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