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