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