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