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