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