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