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