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