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