CCCC00C%//%//XCC%%//X000%%X0C%/X0@@@0%/%C%/X@X//C0@C//X0@0%/XX%%C00C00/%CX/%XCX%%XC%/%C0C/X0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0@00@@@@@0@@@@00@@@@@@@@@0000000000@0000000000000000CC
0000000X/%X%/XC%/%%//X00%/C@@%/%000@0%////%0@X//XC@0//X@@0%/X//X@@CXCC//%//C00@C//XXX%/%X/X0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0@@@@000000000CCX
0000000%/%X%%X%%0@0X/%CC//%X%%X0@@@@C///%//%0X//XCCX//%CXX//XX%/XCX//X//XX/%CCC%/XCX00C%//X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@00000CCXX
000000000000@@0@@@@@@@@@@@@@@@@@@@@@@00@@@0000000000000C00000@@0CCC000000@@0CCC00@@0@@$@0C0$$$$$$$$$$$$$$$$$$$@$$$$@@$@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0000CCCXC
000@@@@@@@@@0@@@$@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$@@$$@@@@@@@@@@@@$@$$$$$$@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@000CCCCCCC
00@@@@@@@@@@^'/XCXC00@@@@@@/+0@@@%:/@@@X!^/XC0@@@0/!^/%CCC0C@@%!/C0@$$$$$$@/:%@$@00@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0000CCCCC0
@@@@@@@@@@@@^ !@$@@@CX%00@$/ +@@$/ :0$$X..::::::'!/:..'''''.:X/ ':':!+%XC@@! .++:..^@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@$$@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0000CCC0
@@@@@@@@@@@@/ .+^:''.....'/C::0$$0: /@$%../@@@@@@@@!..+@@0@@00/ +@0%!.'^%C@/... .'++!%@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@00CCCCCC
@@@@@@@@@@C+'       ....!//C+./@@@! !/@%. .:!!^/%XC+. .!^+%C@@%.:!:^/+!!/C0/..'+C@$$@0/C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@000@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@000CCCCCCC
@@@@@@@@@@@C%^!::^/X@%.:C@0C%.!0@@%..:C@^  ':::^/X0X.  .!!!%0@C''C0+.   '+0%'.'C@@@@@@$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$@@@000CXXCCCCCC
@@@@@@X+^!::::!+/%/++! ^@@0+' .:!!:.  :CX. ^XXC000@@!  !@$@@CX0: '. '^%C0@@C:.'/$@@@@@$$$$$@$$$$$$$@@@@$@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$@@0CCCCXXCC0000
@@@@@@0XC0CC00@@@@@@@C^!/%@@C%%/+^^^!:'+0! '+^^+!X@@/ .:C$@@00X: '+C@@@@@@@0^''+$@@@@@$$$$$$$$$$@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@00CXXCCC0000000
@@@@@@@@@@@@@@@@@@@@@@@00@@@@$$@@@@@$$CX@%'%@C0@@$@$0!.:C$@/C$@@//@@00@@@@@@@^./$@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@0CCXXXXCC0C%^!^+%
@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$@:/$@@$$$$$$$$@@@@@@@@$$X+C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$@@@@$$@@@$$$$$$$$$$$$$$$$$$$BBB$$$$$$$$$$$$$$$$$$$$$$$$$$$@@0X%///XXCX^''':^//
@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@@@@@C%C@@@@@@@@$$$$$$$$$$0$BBBBBBBBBBBBBBBBBBBBBBB$BB$BBBBBB$$$$$$$$$@@C%+^^+/X%^:::!^^+//
$$$$$$$$$$$$$$$$$$$$BBB$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@0/+/%C@$$$$$$$$$$BB$BB$C@BBBBBNNNNNNNNNNBBBBBBBBBBBBBBBBBBBB$$$@0CC%/+!:!!!+/++///%%%%%%
$$$$$$BB$BBBBB$$BBBB$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@C/^^+%%C@$$BBBBBBBBBBBBBC@NNNNNNNNNNNNNNBBBBBBBBBB$$$@@0CCCXXXX%%/+!::::::!^/%%%//%%XXXXX
$$$$$$$$$$$BBBBBBBBBB$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$B$$$$$$BB$$$$$$$$$$$$$$$$$$$$$$$$BB$$$$$$$@X///+////%0BBBBNNNNNNNNNBC@NNNNNNNNNNNBB$@00CCCCCXXXXXXXXXXXXXXX%+!:::::!::^+/////%XXXCXXX
@$@0$$$$$$$$$$$$BBBBB$$$$$$$$$$$$$$$$$$$$BB$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$BBB$BBBBBBBBBBBBBBBBB$$X///////+//%0BNNNNNNNNNNNBC@NNNNNNB$@@0CCCXXXXXXXXXXXXXXXXXXXXXX%/!''''::::!^++//%%CCCCCCCX
@@%+0$@$$$$$$$$$$$$$$$$$$$$$$BBBBBBBBBBBBBBBBBBBB$$$$$$$$$$$$$$$$$$$$$$$$$$$BBBBBBBBBBBBBBBNNNNNNN$XX%////++/////%CNNNNNNNNNNNBX0BB@0CXXCCCCCCCCCCXXXXCCCCCCCCCCCCCCCX/^:':::::::!!^+/XCCCCCCCCX
@0+^C@$$$$$$$$$$$$BB$$$$$$$BBBBBBBBBBBBBBBBBBBBBBB$$$$$$$$$$BB$$BBBBBBBBBBBBBBBBBBBBBNNNNNNNNNNNNN0^+/++++^!+/////%0BBBNNBB$$$0CCCXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCXXXXX%%+!:!^^'''::!^%%XCCCCCXXCX
@X!^%0$$$$$$$BB$BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB$$$$@@00000@00@@0^!^/+^^^!!^/+++^^/C$@@0CCCCCCCCCCCCCCCCCCC00000000CCCCCCCCCCCCCXXXX%%/^^^%^''':!+%%XXCXXXXCCCX
@/!!+/0$$$$$$$B$BBBBBBBBBBBBBBBBBBBBBB$@BBBBBBBBBBBBBBBBBBBBBBBBBBBB$$$@@@0000000CCCCCCXXXXXXX%%+!:!+/+^!!!!^////%XXCCCCCCCCCCXXCCCCXXCCCCCCCCCCCCCCCCCCCCCCCCCCXX%////+^^^XC:''!%C0@@@@$@@@$$$0
@/:!^+X$$$$BBBBBBB$0%X@BBBBBBBBBBBBBBB$@BBBBBBBBBBBB$$$$$@@@000CCCCCCCCCCCCCCCCCCCCCCCCCCCXXXXXX+:::!!!!^^+/XXCC000000000CCCCCCCCCCCCCCCCXCCCCCCCCCCCCC0CCCCC0CXXXXXXX%/^++C0^''!/XXCCCCCCXCCCC%
@/::!^/0$$@$BBBBB0+:!^/X0BBBBBBBBBBBBB@@@@@@@000000CC0000000CCCCCCCCCCCCXCCCCCCCCXCX%XCCCCCCCCCX/::!!+/%%XCXCCCC00CC000000000CC00CC00CC0CCCCXXCXXX%XXXXXX%%%/+^!^+///+^^+X0@C!''!+XXCXXC0C%////+
@C+/%C0@$BBNNNB$/:':!^+//C$BBBBBB$$@@CXCCCCCCCCCCCCCCCCC00CC00CCCCCCCCCCCCCCCCCCCXXXXCCCCCCCCCC0CXXXXXXCCCCCCXXXXXCXXXXXX%%%%%$N$C%////////++++++//%XXXXXX%%+^!^+++++^^%0$$C^'':!/XXCCC00C/+++++
CC0@$NNNNNBNNNNNN$0/+++///X0CCCCCXXXCCCCCCCCCCCCCCCCCCCCCCCCCCCC0CCCCCCC00000000CX%%XXXXXXXXXXC0N$%:'''''.''':::':/%%/^^^!!/%%@M$%+^^^^^^+/!!!!^^!/XCXXXXX%+^^^^++++/%0@$@X^:'':+%CCCCCCCCX//+++
$BNNNNNNNNB$@0CCXXXXXXXX%XX%%XCCXXXCCCCCCCCCCCCCCCCXXCC00000CCCC0CCCCCC000CCCCXXX/+++^^^+++++++XN$/:'''''''':::::!%CC/!!!!^/%%@NBX///+///%%^!^^^^^+XCCCCCX%+%/^^^+%C0@$$@X/^:''!%%CCCCCCCC%+++++
NNNNBB$@0X%%%%%%%%%%XX%%%///++///%%XCCCCCCCCCCXXCC00@$BB$0CCCCXXCCCCCCC0C0000CXX%/++^^^^^^^^^+^%N$/!:'''''''::::::XCC%^^^^^%%X$NBC%%%%%X%XC+^^^^^^/C0000CX//%XCCC0@$$$$$@X+!'''^XXCCCCCC0C/+++++
X$NNNBBB0XC00000CCXXC%^!^^^^^^^/XCCCCXXCX%%%%C0XXXXXXCXCC0CCC0@000@0CCC@@000@@CCX/+++++++++++++%N$/!!!:'''''''''':X00%^^^^+XX%@BBCXXXXXXXCC+^+++++%0@00CX%%X0@$$$$$$$$$$$0/^'''+CC0C00C00C/+++++
/$NBNNNN@C@$$$@@@@0CX+^^^+/++^+/0@CXXXX%%////X@%/!:::+%XCCCCC00%%%00XXX@@CXC@$0CC%///+++++////+XN$/!!!:'''..'''''!C00%^^+^+X%%@NBCXXXXXXC00/+++++/X000C%%0@@$$$$$$$$$$$$$@%^'''+CC0000000C/+++++
^@C+/%%%C0@$$@@@@@0%++++++%%/%X%@@CCXXX%%%%//C@%%!:::%XCCCCCC00/XC@0XX0$@CC@@@0CC%/////////////CNBX%XX%%//+!''':!+C00X^^++/CXX@NBCXXXXXXX00/++++++%CCXXC@@@@@@$$$$@0@$$B$$@%:':/CCC000000C/++++^
/%%++++/XC0@@@@0000%++++++%XXCCC$@0CXXXX////+C@%%/^^+XXCCCCCX00/C0$@CX0$@CC@$@CXX%///+++///////0NB0%%%/%/////+^+/%C00X+++++0C%@NBCXXXXCCX00/++++++%XXXX0@@$0XX@$@0CC0@BBB$$0/:!%CCCCC0CC0C/+^^^^
!!!!^^!!!+X@@@@@@@0%+++^^^^+++++0B%+++^^^^^^+C@%%+^^^%XCXXCCXC0C@@@@00@$@00@@@CX%%/////////////CNB0//////////++++/CCC%^+++/0C%@NNCXXXXCCXC0/++++++XCXXX@@$$0%+%0@@@@$$BBBB$$0/!/CCCCCCCCCC/+^^^^
::^!^/+%XXC00@@@000%++^!!!!:::::XB^.''''''':^C@X%!'::%X+:::::!!^^^^++++////^^^^+/%/////////++^^+/%%+++++++++++^^^^+/%+^^^^+CX/@MNC%XXXXXXCC/+++++%XX%XC@@$$0%+^+/X00@BNNNB$@0C+/CCCCCC000C+^^^^+
++^^^^+^!^^^^++++///++////++++++X$%^++^^^^^+/0$0X+!!!/%+'''''':::::!!!^^^^!:::::+%%%%%///^!:::!!!!^^^^^^++++^:::::!!!^^+^+/XCC$MBX%XXXCCCCC/+++/XXXX0@@@$@$@X/+++X0@$BNNNB$@CC%%XC0CCXCCCC/+++++
^^^^!^^!^^^^^^^^^^^^^^^^^^^!!!!!!^^++++++/////%%%%%%%%%/^^+^^^!!!!!!!!^^!!!::!!!/%%%%%%/!'':::::!!!!!::!^^::'''''':::!^^+++XCCBMBXXCCCCCCCCCXX%/CCXC@@$$$$$$00X%X@$BBBBBBB$@CX%//+^!!!!^+/+++++/
///////////+////////////////////////////++++++++++++//////////+///////////%//%%%%XX%%%X+''''''''':::::::!:''''''':::!^^^^^^%CC$MBX%CCCCCCCCCCC%/X00@$$$$$0C%/++/%/%@$BBBB$$$@C%///+^^^^^++++++/%
////////+++++^+++++++++++++^+++^^++++^^^^^^^^^^^^!!!!!!!!!!!!!^^^^^^^^^^!!!!^^^!!!!!!!!!:''''''''''''':++:''''''''::::!^^!^%%C@MB%%XXXXXXXXX%%%%%0@@@$@@X^!/0@$$$$0%C@$$$$$$$@0X/////+++++++++//
/+^^^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:::::'''''''':!++!:'''''''''':::!!+/%X0$@%%%////%%%%%%%%X0@@@CXC@0/^X$$@CXX/%XC0@@@@@@@X++++++++++++++++
CXXXXX%/+++^^^^^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^^^^^^^^^!!!::::::!!!^^+/%%%XXXX%%%%//%%%%%%XXC@@@@%X0/0@00CX//0C//%C0C%%0@00X^^^^^^^^^^^+++^+
XXXXXXXXCCCXXXX%%//++^^^^^^^^^^^^^^^^^^^^^^!!!!!!!!!!!^!^^^^^^^^^^^++++++++++/////%%%%%%%%%%%%%%%%%%%%%%XXX%%%%X%XX%%%/%%%%%%%%%XXXXXXXX%%//%C000$@X%XC0XXX+^^/0C/XCC/%00C^X000C+!!!!!!^^++^^^+/
XXXXXXXXXCCCCXXXCXXXXX%%%/+///++//%%%%%%%XXXXXX%%%%%%XXXXXXX%XXXX%%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%%%%/%%//////++++++^^+++++^^^^^^^^^+++++/%C00@@@0/%XCCX^!!X@00/%@$X%CC0/%0@0C+!!!:::!!!!!:!/%
X%XXXXXCCCCCXXXXXXXXXXXXXXXXXXXXXXXCC0000CCCCCCCCCCCCX%%%%%%%%%%%%%%%%%%%%%%////+//++^+/+^+^^^^^^^^^^^^^^^^^^!!!!!!!!!!!!!!!^^^^^^^^^^^^^^^+%C0@000X%C@@X/^+C00XXX!%$C++0X/C@$@C+::::::::::::::+
%XXCCCCCCCCCCCXXXCXXXXXXXXXXXXXXXCCXCCCCX%%%%%///////+++++++^^++^^++++^^^^^^^^^^^^^^^^^!^^^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^^^^^++%XXC@@0%%X@@X!^X0X++CCX^%C!+0CXCC@$@C%^!!!!!::::::':^
!!!+/XXXCCCCCCCCCXXXCXCXXXCCCXXXXCCCCCCCCXX%%//+++++^^^^^^^^^^^^^^^^+^^+^^^^^^^^^^^^^^^^^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^^^+/CCCC00X+%@@0^!/XCX%%/+/%%%/%X%0$00@0CX^^!!!!!!!!!!!!+
!:::!!!^^+/XXCXXXXXXXXCCCCCCCCCXXCCCCCCCXXXXXXXXXXX%%%/+++^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!!!!!!!!!!!!!!!!!:!!!!!!!!!!!!!!!!!!!!!!!!!^^^^^^+X0CCCC/^X@@@%::^%XXC00CCCXX///0$@CC00%^^^!!!!!:!!::!+
::::!!!!!!!^^^+%%XXXCCCCXXXCCXCCCCCCCCCCCXXXXXXXXXXXXXXXXXXXX%//+++^^^^^^^^^^^^^^^^^^^!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^^^^^+%CCCCC/+C0@$%:+%%%%%C0CXXCCCC%X@0C@@C+^!!!!:::::::::+
!!!!!!!!!!!!!!!!!^/%%XXCCXXCCXXXCCCCCCCCCXXXXXXXXXCCCXXXXCCCXXXXXCXX%%//+^^^^^^^^^^^^^!!!!!!!!!!!!!!!!!!!!!!:::::::::!!!!!!!!!!!!!!!!^^^^^/XXC000%%C0$@^^/%X0@@@$@0C00@0XXC00@0/!!!!:::::::::::+
!!!!!!!::!!!!!!!!!!:!!^/%XC0CCXXCCCXXCCCCXXXXXCXXXCCCXXXCCCCCCCCCCCCCCCCCCCCX%////+^^^^^^^^^!!!!!!!!!!!!!!::::::::::!!!!^^^^!!!!!!!!!!^^^^/XCCC00X%00$$C/XC00@$$$$@@@@$$@@@00@C+!!!::::::::::::+
!!!!!!!:::!!:::::::::!!!!!^+%XCCCCCCXXCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCC00000CCCX%%/+++^^^^^!!!!!!!!!:::::::!!!!^!^^^^^^^^!!!!!!!^^+/%XXCC0@0XC0@@00000CC00$BB$@@@$$$$@00@X^!!::::::!!!!:::+
+^^!!!!!!!!!!::!!::::!!!!!!!!!+//%XXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC0000000000000CCXX%%//+^^^^^^!!!!!!!!!!!^^^^^^^^^^^^^!!!!^^^+/XCCCC0@@CXXCCX0@@@@CC0@$B$@0@BB$$@XC0X^!!!!!!!!!!!!!!!/
CC%+^!!!!^^!!!!!!:!!!!!!!!!!!!!::!!!^+%XCCCCCCCCCCCCCCCCC0CCCCCCCCCCCC0CC00C000000000CC000000000000CCX%//+^^^^^^^^^^^^^^^^^^^^^^^^^^^^++/%%000@@$$$@0XC00@$$@000@$$@@$BBBB$@0X+^^^^^^^^^^+^+++/X
%XCCX/^^^^^^!!!!!!!!!!!!:!!:!!:::!!!!!^^+/%XC0CCCCCCCCCCCCC00CCCCC0000000000000000000C000000000000000000000CXX%//+++++++++++^^^^^^^^^^++/%XC@@@@$$$@00000@$$$0C00@@@$$BBBBB$0XXXXXCCCCCCCCCCCCCC
^^/XCCC%+^^^^^^^!!!!!!!!!!!!:::::!!!!!!^^!!^+/%CCCCCCCCCCCC0CCCCCC0000000000000000000000000000000@@00000@@@@@@@@@@0CCX%%%//+++++^^^^+++//%XXC@@$$$@@0@@@00$$$0CC00@$$BBBBBBB@@0000000000CCCCCCCC
^^^++%CCCX%+^^^^!!!!!!!!!!!:::::::::!!!!!!!!^!!^+/%XC000000C00000C0CC000000000000000CCCCCCCCC00000000000@@@@@@@@@@@@@@@@@00CC%//++++///%%XCCCC@$$$@@@@@@000$$0C0@@$$$$BBBBBB@@0000000000CCCCCXXX
X%+^^^+/%C0C%/+^!!!!!!!!!!!!!::::::::::::!!!!!!!!!^^++/XCC00000000000000000000000000C00CCCCCC00000000000000@@@@@@@@@@@@@@@@@@0C0CCCCC000@@@@@00@$$@@@@$$$@C0@@@@@@$$$$BBBBBB@@@0000000000CCCCXCC
XXCX/^^^^^+%XCCX+^^!!!!!!!!!!::::::::::::!!!!^!!!!!!!!!!^+/%XC0000000000000000000000C00CCCCCCCCC0000000000@@@@@@@@@@@@@@$$@@0/!!^%C00000@@@@@@@@@$@000@$$$$@00@0C0@@@$$$BBBB$@000000000000CCCCCC
%XCCCX/^!^^^^%XCCX%++^!!!!!!!!::::::::!:!!!!^^+^^!!!!!!^^^^^+//%XCCCC000C00CCCCCCCCCCCCCCCCCCCC0000000@@@@@@@@@@@@@@@@@@@@@@0/'''':^//%XC00@@@@@@$$@0CC@$$$@000CXC0@@@@$BBBB$@0000000000000CCXCC
!^%CCCCX/+^^^^^/XCCCC%+^^^^^^!!!!!!!!!!!!!!!^++^^^^^^^^^^^++++////%XXXXXXXXXCCCCCCC000000000000000000000@@@0@@@@@@@@@@@@@@@C^:''''''''''':^/%C00@$$@@@@@$$$@00@0CXC@@@@$BBBBB$@0000000000000CXCC
!!!^/XXXXX%+^^^^^+%C00CX/+++^^^^!!!!!!!!!!!!^^^^^++++++/++/%%%XXXX%%%%XXXXXCCC00000000000000000000000000@000@@@@@@@@@@@@@@C:'''.........'':^++X00@@@@$@@@@@$$$@@@00@@@@$BBBBB$$@@000000000000C0C
!!!!!!+%XXXX%+^^^^^+%XC0CC%%/+^^^^^^^^^^^^^^^++++///%XXXXXXXXXX%%%%XXXXXXXCCCCC0000000000000@@@00000000000@@@@@@@@@@@@@@@@0^''''.........''':!/C000@@@@$@0@$$$$@@@@@@@C0$$$BB$$@@@0000000000000C
!!!!!!!!^%CCXXXX+^^^^^+/X000C%///++++++///%%%XXCC0CCC%%%%%%%%XXXXXXXXCCCCCCCCCCCCCCCCC000000@@@@@000000000000000@@@@@@@@@000X/^:'........'':!:!%CXC@@@@@00@$$@$@@@@@@@0000@$$$@0000000000000CCCC
!!!!!!!!!!^%CCCCCX/++^^^^/X000CCX%%%%XXXCCC0CCCX%%/////%%%%%XXCCXXCCCCCCCCCCCCCCCCCCXXC000000000000000000000000000C0000000000@@0CX!.......'^00C0CX0@@@@@@0000@@@@@@@@@@0000@$$@0000000000000CC0C
!!!!!!!!!!!!^%CCCCCCX/+^^^++%C00000000CXX%///+++++////%%%%%%XCCCCCC00000000000C00CCCCCCC0000000000000000000000000000000000000000000/'......:X@@@CC@$$$$$$0/!::^%C00@@@@@00@@@@@@0000000000000C0C
:::!!!!!!!!!!!^/%XXCCC%/++++++%XCCX%/+++^^^^^^+++///%%%XXXXXXCCCCCC00000000C00000CCC00CCCCCCCC0000000000000000000000000000000000000CC^'.....!X@@C0$$$$$$$@C/^:'''':^+%C000000000000000000000000C
::::::::::::!!!!!^/XXXXXX%++^^^^^^^^^^^^^^^^+++///%%X%XXCXXXCCCCCC000000CC0CCCCCCCCCCCCCCCCCCCCCCCCCC000000000000000000000000000000CCC/'.....'/0C0$$$$$@@@00CCC%/+!:'.:/+/CX^+/C0000000000000C0C
::::!!:::::::!!!!!!+%XXXXCCX+^^^^^^^^^^^^^^++/%%%%XXXXCCCCCCC00000000000CC000000CCCCCCCCCXCCCCCCXCCCCCCC0000000000000000000000000000CCC/'...:':%XC0@@@000000CCC00000CC%+!!!^^+/%C00000000000CCCC
:::::::::::::!!!!!!!^+%XCCCCCX/+^^^^^^^!^^^+/%%%XXXXXXCCCCCC0000000000C00000000000CCCCCCCCCCCCCCCCCCCCC000CXCCCC00000000C0000000C0CCCCXC%:.'^%^:^++/+/%C000000000000000000CXCCC0000000000000000C
:::::::::::::::!::!!!!^^/XCCCCCX/+^^^^^^^^^+/%XXXXXXXXCCCCCC00C0000C000000000000000000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC000000000C0CCCCCXXXXX/+^+/++^^^^+%CCC00000000000000000000000000000000000000
:::::::!::::::::!!!!!!!!!!/XXXXXCX/++^^^^++/%%%X%XXXXCCCCCCCCCC0CCCCCCCCCCC0C000000000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC00000000CCCCC/%00%//^!!!!^+///X0000C000000000000000000000000000000000@C
::::::!!:::::::!::::::::::!!^/%%%%%%/+^^^^^+/%%%%XXXXXXCCXXXCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC000000CC0CCCCCCCXXX%%%%XC00C00CCCC0000000000000000000000000000C00%