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