tt;;;;;;;;;;;;;;;;;;;;;;;tttt;ttttt;;;;;;;;;;t;;t;;;;;;ttt;t;t;;;t;tt;;;;:;;;:;;
:::: .. ... ... . .. ... . . .. .. ... .. ... . . . .. . . .. .. .. . .  .  ..  
@X .............................................................. .... ..... ...
@S ... .  .   . .  .   .   .      .   .      .  . .  .         . ....:::.:::.. .
X 8X88XSXXSXX8%S88XSXX8%XSXSSXSSXSSXXSXXXXXXXXX X%SXXSX8%XXSXSS%S.Stt%;tt;;;:::.
@8     . ..        .     .  .  .  .  .  .  .  t   :  .    ....:  .::::8tt;t @ ..
@%    .:. ...     .: tX ::.:..................t   : ... ........ ....::... %X ..
@8 :. .....:;.....;;;t@:;;;;.....;:.......... %   .................... ...: @ ..
@8 ::;;;;;;%8:;t:XStt%S ;;;@;:;;:@t;;;:;;:....%   ....... .... ............%X...
@S%8:S8:t  @8S@SX88 @ X S     .; 88:S.%8X:..:.%    .......................: @ ..
8 S88X%@8@S88;X..88.@S@;XX@8;@ @S88@8XXX 88Xt:S   . ........ ........... .. 8...
%8@888888@:88 XtX8X%X%@:X88888 S:@8 8S8@:;.  .88S8%8S%;. . ......... .....  8...
@8 ;.;8 .  .S .;X8S@%8@X@8%S  8X:X@X88  tS8S8@8S8SX    8@Xt.  ......... .:  8.. 
@% ..:@.   ;8   .t:.:%.@:@88XX XX@8XXX8S@88888 SX8@8X8%8   88@8;;: . ..... %@ ..
@8 : :@ .. .S;tt;XS@%  8Xt88XS..;X:tX8%8SS@8X%% SS8:X @;8S@%8S. .X8@8t;: :. 8...
@8  .:X  . ;8 ...%S: %X: 888;X ; ;:.;t%8 .;888888.. .S 88888 :8S8@8%  .XXSt%X ..
@8 ...%  . .S   .X8%@S 8X:%8.SX; :: . :8t..t. t %888 8@ :X X88888 888@@;X 8 tSS 
@8   :8%S8:%%;X:tSS%t8S8tS;%:Xt;:8;%8XX8 ..:: % :.:;.  8:8tS88  XXS888:8;8@ @ XX
@8 . :8    :X    tt .;X:; 8S@@X:  :.: :X ...: % : ..    ..;; 8@888 t  88 8 X88t8
@8  ..S    .t   ;@88%S8;%t@tSX.. ;... ;X ...:.% . ...........: ..888 88S%.8:8 8 
X8 . :X .. ;X  . ;;. :X . tS:... ;. . ;X .....% . ... .. . ....:...t. t8%88 S%S8
X8   :@ ...:8.;t;XS;t%8:t;%@:;:;:%..  ;X ...: S . .. .................;;;;:@X88X
X8 : :X... :X;;;;8t;;88;;;;X .:::8  . ;X . ...% . .... . . . .. ..... ...: X%S;8
X8  .:X  . ;X .. :t .tS .. S   . :. . ;X .....%   .. ........ ... .. ....  ;Xtt 
X8  ;@8%XSt@X%X8tSSXStS8SS%%S8;888;SS;X8% ..: S  .... . . . ... .. ... . . tX . 
X8  .::    :%.   :%  t@ .:.8      :  .tt:.. :.%   . .......... ..... .....  8 ..
X8 : ...  ..:.. .:;;;t@;t;;.      .  ... .....S   ... . .. ...... ... . .. %@ ..
@@  .. .... .. ......:S... ..    . ... .. ....S   ...... ... ..... ......   8...
@8.:.....................................:..:.S  .... ... .... .........:. %@ ..
@8;tt%%%%%SSXXSSSX888888888888@8888@XXXS%%tt;:8  88888XSXSX%S%SS8@S%t;t;;%X 8 ..
S%t     %  % % %ttt%t%%SS%S%%%%%%%%%tt;  %      88%@8888888888@@8@8 t t  %%SS...
.               . @t........ .. ......       S8.::@@@8888888888@8@88      .;:...
..             .:.%;. ....... .. ....        88S;:XX@ tt..       888 .    ..;...
...    ....::::.::%;:.:...:.::.::.:.:::.:.:: 8@..:@@X@@X8@88@8888t88 . . ...... 
. ... @888888888888SS8@8X8S8S8S8S8S8St88SXX88X8 .:S888@@@888@8888888 ..... .....
.. ..8tX8%S8%%t%@88%;t@%;@tt8%;8%t8%8%8%88S8SStS:;S8S8X8%@X%X%%X%88S8%.. .......
... S @.:..:....8S:;..:..:..:.::..:::::.;:::..; %.S8%% % St;tttttt888tt .. . .. 
...% 8........ 88S:................ .... .....:88.S8.t%%%:::::.:.;8@:;%@;;... ..
..SS .:.......@S@8888888888888888888888888888888;8@X8888;8@8@S:@8X88::.8@t::....
 8:  ....... .%888XXSXSSSSSS%Stt:..;..;:;:t.:tX;t%S8@X8t:8@%@88@@%88..: ; @ :.. 
8:  ...........t; . .... ....................::..:S8%t8t:@8S@@888X8X.;.::tXXt...
t.:::::..:.:.::.::@;@;8t8t8t8%8S8@S88S8@8@S8@8%8t8%88@888@XX88@88888 ......t@8;.
S X%%%%t % %  t;t%XXXXS8X88@8888888888888S888888X88888888888%88@888@;.. .....8  
..::::.         ..... ..  .    :  ..  .t;:....;;:;;%t%%.t%::;%8%%t;....... .: 88
........       ..... ... ... .. ...   ..:... .::.............%S8 .:.... .....::.
.. . . ... .  ... .... .. .... .. ....... .... ......... . ..; 8% ...... .......
....... ... ... .. ............ .. . . ... . .. ...... ...... . SS8X...... . .. 
. . . ... ... ..... . .... . ... ...... ..... ... .. ... . ... :;.S88... .8.S@ %