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