d8888  .d8888b.   .d8888b. 8888888 8888888             d8888 8888888b. 88888888888          
       d88888 d88P  Y88b d88P  Y88b  888     888              d88888 888   Y88b    888              
      d88P888 Y88b.      888    888  888     888             d88P888 888    888    888              
     d88P 888  "Y888b.   888         888     888            d88P 888 888   d88P    888              
    d88P  888     "Y88b. 888         888     888           d88P  888 8888888P"     888              
   d88P   888       "888 888    888  888     888  888888  d88P   888 888 T88b      888              
  d8888888888 Y88b  d88P Y88b  d88P  888     888         d8888888888 888  T88b     888              
              
                                                           
......................................................................................... .. .... . .....................;..;=. ....;;. ++=;.;.;;.....=.......;=..=+=;=...=;=..=;.;==+;.;=....;...=;;....;..;......;.....;.....................;+.;.=.;.. ....... ... .....      . ;=....  ..             ; ...     ..     ;;.  .    .==.;..;;=......;=.===......;==............;=.;............................;...................................
..........................................................................................   .....  ...;;........;. ...;;=......;..;+=. ;=;=;=;+=.;;..=..;;.;;=.;;.;.;;;...;=;..=;...;.;......+;.;;;+...;=;.=......=.;;..=................;;....;;+;.;=;. .. .;..= ......  . ... ...;...   .. .      .       . .      ;  . .=.=. .;  =====..==.;;;;.;;=;;;...;;..;=......;=;...;;=.+;...........................X...................................
.......................................................................................; ... ;.  ... ....... ....;;..;;;;;....;;=;.;;.; .;;;=+.=.;;==.=;.;;.=+;..;.=..;=;...;;;;.=;;;=;=.;;....=.====.;;;;.........=......................;;....;;;;..;=.; .... .. =. ..   . ..   ..  .... ...                ;=. = ...  .... ;.. . .;. ===;=..;...;=;;;;=;..;;.. ........;;;;.;;;..................................................................
.......................................................................................;.....;. ..;;  ....;;....;....;;;;;....;;;; ;..===;.;==...;==+.;;;=;..;;.;=.;..;;;..=;;=;..;;=;...;=;...=.;;;=.;=....=....................;;;;.......;.;;;.;..==;.;. .;=. ..=. .    .  ........      .               . ... =       .;;;;;= .. .;.;=;=;.==.==;=. ;;=;.;.;;......... ;.;;......................................................................
................................................................................... ..............;;.....;;  ;;.. ..........;;.;;..;;;;;;..;;=...;+=;.;;;; ;=..;===+.;;...;+=;;......=;...===;.==..;+....=+;=......;;.....=;;=;=.;+;;...;==;; ;.=;;=;===... ;==.         ..    .  ......    .     ;  ..  . ...;   .       .;..= ;  . .;;.. =..;;.=;.;..=;;.=;.;; ..............;.................. .................................................
............................................. ................ ...................................;.....  .. .  . .....;; ...;.;....;;....;;=;.=.=+;=..;;..;;=.;;..;====;.=;=;;....;;;;.;+==+=.;=.=+;++..+=.........;.=;..;;==;+=.;=X;..;+=.. .;=;=..+... = .;=.     ..          . .;; .;= .     ;.     ..    .= .  . .   ;   ==; ;... =....; ;=; .=..;=..=..;;................=. ....=.............................................................
.......................................... ..................................... .    ........ ....=;.....=;.........;=.;;..;;....;=...........=.;=;;.=..=+;=+; ==.;=;=+;.;=..=;........=;;.;=....+=.;;..;.+;+===+;;+.;...++;;+X+..;;=X=.;.=; X++;=X ;.. =;..  =. .= ;= =       . .  ..=.            ;.;. .    ;.        = .. = =; ..=... . .=;==;.;..;;;;=.  .=;.=;;..........;.. ...;.............................................................
................................ ..................... .......... ................ . ..... .=;.....=;.. ....;...;.. =..... . ...=..=;..=.;+=;.==;==;;.;;=..=;.;=;;..;=;;=+;;...=;.;;=;.X....+;..;..;.+....;.;+==..;;;+.=;.+X=..++X;==;=;+=.. ===.=; ; .;.    ..;      .   .=     ..  = ;             .           ;  .=.    .. .=.  .;;. ;. ..=;=;. ...;.....;;..; .... =;... .......................................................................
...................................................... .................. ....... .................;..=.....;... =;+....;;..;........;..;.;==;.;=.;==.==.;;;=;===X;;=;==+;+=.;;;=;==;..=;...;.;;=..=;.;;;.=;.==;;;++;+.=;;;=;;..==;;;;===.=..+; ;++ +.;;  ;+.=.    ;  ;;.   .  .  .  ..                           ;  .;..  .. ;...==...  ;;.. ==;.;...;;........=.....;;;.......;;;.. ..............................................................
............ ......................................... . ........... ........... . ..........  . ..;......   ;...;;=.. ;=+.;;.;;..;;.=;;+.;=;.=+=..;;  =.;;=...;;==;;.;==;X;.;==;;....;.=...;=+=..;;.;===...=+=+=X;.;X=;.X=;;====.;=.+==;;;==++.;=  .=;... =   ;. =+     . .;    ..               .         . ....   ;. =  ..  .;.;=;;;..;;....;;.=;..;. .. .;;..;...... ..;;...=;..................................................................
............................... ........ ....... ..... ..... ..............    ...;............  ... ;....;.;......;...;.;.=;.;;..=+==;;=;;===.==;..==;=...;.=;;;;=;;;;=+==;.;=;++=;==+=..;=;X=...;;...;;=;.X+=+==;=+XX===X+;=;=X;.;=XX====;.;X;+=   ;===+..; ..; =; ;         . .                .         = .   ;;..; .  =.. =.;;;;;= .;........;..;;. ...;;;.=;....;;......;............................+++=.....................................
................................. ........ .................. .  .. . ..... .............;;. ... ... ......;;..;.;.;..;;;..;;.....==;;;..;==;;.=;=...+;;..;..++;;;;=;=;;=X.;.==;;=+=;;;=.;+====.;=;;.++;.+;.=+;+=+;XXX=;;+===;.==;..+XXXX=..;+==X+=.;;;===;.+ . .  .;.     ..     .   .         ..          .;    ...;;    ;=.;. ;;. .;;;. .; .......=;... ;=;..;=...;;...;...=..................+XXXXXXXXX###+.....................................
.............. ....... .;;...................... . .......   .... ..... .......=;. ;;.....;...=....  ...;;  .....;..;=.;;..........;;.....;=;==.=;=; ;..;=;==;=+;==+=;;.=+=;==;.=;+;;=;...====+.;;;..;;==;+;XX=++X;X;=XXXX+;;=X=+ ..=XXX;X=. X ;;+;=X=.. .+  ;++; .=      .  .       .  .; .     ..     .   ;            ;..==;;...  ; =.;; ..;=;...=;;.....  ;;  .  ;....;...;.............XMMMM####X......=X;.....................................
............................................... .... .....  .. .... ... ..  ........=.  ........;=... .......= ........ .....;=;..... .=....=++ ..;..==..++;;;+;;+++=..=+;;;==;+;+===;=;.....=;.;=.+;X+..=X;X;==++XX;XXX=X;;+=;+;;=.. =X+;+.   + . +;X=..=.   ==..  .  =;...     .  .  .         ;..    .         .  .==   .=; ....=.== ;;;=;=......;=..=;....;........X;.......=.........XM.. ..  .        =+......................................
............................ ....... ..... ......... .... ..... ..... .......;.. ..  ....    .... .......... ...;.. ..;;...=;;.=;.;=.; ==;=.=;+;;...==;=;;;;;++==+==.;=;=;+.;+=.;.;;..;+.;=...;=+=;.X.;...+;.;...;+;+;X=X;;;=;+; .;==....   +;..=;=X = .;..  = ;;X    ;  .  .=       .      .  .      . . ; ;    ..    .=.  ;;  =; .=;;. ;;. .=.;; ..;;;;........X......................;X#.               .X.......................................
............... ......... ..................... .... ....... ...................  .... .   ... ..;....; ..;..........;=;;.; ;.=;=. ;;=;.;.;.=++==...;;+=;==+++=;==;;.;==;.=;;=+;=;===.+X.;;...=...=;=;=.;;.+;+..;X;..=X=X;==;+=;;.==== X;. =X.+ ....  .  +.+.;=.=X ;; =.. ...                       ; .       .    =; ;=.=  ;;;.=. ...= .;;.=;..... .........  ....... .......; ..;;...;X#M.               =X.......................................
............................................ ............ .. .;;........   .  .... ..  ......  .;;..;.=;;.;;..........;.;.=.;;;..;;;;;;.=;;.=+=;=;=;==+;;=;=+====++=.;=;;.=;=+=+;=.;=;.=;;;;.=.;;;X;=...;;;=.;.;=X;..;XX+==+===;=;==;+;+=+.=X=.;  ;;   .;===;.;  = .;;; .;==; .                           ;   .;   .; ;;.;....;..;.......;. .;.;;.. .....; .; .... ...........;...;;...=#X.                #X.......................................
...........................................  ..................;  ... .. .     .. .. ...;.....;........;;..;. ..; .. .. ..=. ..  +=.;;..=;..==.;==.;+;=....;==;===+====;=;=;;;==.=.;;;.====;.=.;+;=;=;=;;.;X=.;==X; ..=X+==.== .========XX=.;+.= . +==;;;;=;==;.     .   ...   .                  ..  .    ;;  =. .  ..=.  ;. .;.;;.;  ==;.;;.;. ..;..;;.;..;.;.........;;; ;;........++=.                =M=.......................................
...................................... ........... ..... ..  .. ....... .. ......... .. .. ..=;.. ..;....  ;....;;.=......;....;;;;;;;.=.=;=;=..=+;=+;;=....++===;++=;=;;=+;;;;==;;===;;;==...+;+.=;..=+=;.;;;XX+= .;+=;=.=;=;.+===;;;.+X+=. ;.. ;;.;;== ..... .  . ..    =..   .  .. =           .  .     ;   .;;= ..  =. .; .;.;;.; .=...=;;= .;=. . ..... .;;;.=;... ;;= .;........M.                 +#=........................................
................. ........................... .... ........... .... ..    ..  ......   . = ..;......;= ;;  .....;. ;=.. ....;;.;.. ;. .;.;=;=;.;==+;; ;=;==;+=;+;.=;;===;+;==;.;X;+=;+X;;+;.++;=;.;;.+;+;;...;++X;..;X=...;+;.+XX...  =.X.  =X = .;+; =.;.   ;;+==  ..    +    .+      .                  ;  ;    =       ;==; = ;  +;..;...=.;.;;; ..;.;;....;.; ... . =;=.........XM;                  M#.........................................
............ .... ..................... ...... ......... ... . ....   .. ...... .     . .. ..... .; ...   .  . ;; . ..=.=;.. ..=;;=.;;.=;+=;;..++=...=..;++;;;.=++;==;;=+;;+==+;;.;=+;;=;=;;;......=+;;===.=X=.===;;.;==;.;+...;XX+== .XX.  =. .+=. == =X;. =    .     ;   .; .. ;   .                    . ;   ... .  . =; .... =;...=..;=;  .=....;;..=;=.........;........=;....X=M                  +#;.........................................
....................... ... ................ . ..... .....  ... .. ... .. .... .. .. ..  ...  .  . ....;...  .......=;;   =;.;; ..;=;;. .;=;.;.;=. ==;=+; ..==;;;;=..;+++=+;++=;;====...;.;=;;=;;;.=;;;=.=+;.;X=;;XX;XX=;;;=;;..XX.;X; .X+;;.+ ===  .+.=  .+ +..;   =   + .  . ..       .      ;   ;  ;        .   ;=;= ..  ;; .;; ; ... ;;.=.;;...=.;=.......;=;==......... .....;XM                   XM;.........................................
.............................. ........... ..... ..... .... .... .... ......... . ...... .... .  ..;...=... .. ;;;  ....;  =..;;. .;;;;=..;=.=;==;...=;=....;+====;.;;=;=;+=;=;.=;==;..;=.;=;+==..;+;=;...+;.;+=++X=..;X++=+==..=+;==;;;XXX;;..+;==. ==;= ;; ..;+...= ;=. =  =; .    ;  ;;   .      .     ..  .    . .;. ...;=.....=;...;.....;.;..;.. ..;...;..;...;;...........;X=.                   X;..........................................
............................... ................ .... ...  ....  .   . .......;........  ...... ...;..; ... ...;=..;....;;.;;;;; ..=;;.;=.;=.==.;==; ;==;..=+======;====;;+;;===.=..;;.+=;;;===;..;+===;..=;...;===;=;==;.=;==;.=;+.=;;++X+.=..=;..=  .    ;  .;;.== ..;.    ;.      ;    ...=      .      .  .    = ;.  ;;;;.;. ..;;..;;.....=.==;=;...;;...=.;=. ....;.........=M.                   .+;..........................................
...............................  ... .... ................  .. ... . ..... ...;. ..........  .   . ... .;. ..   .  ;.....  ...;; .==;=.;;++=.====;==..;;;..;;===+=;+====;+;;;;.;.=;.=;;X+;;..;.....;;;;+;..=;=...=.;=++==;X;==;==;;.=+.;X+++; .+;.;..=     .  .=.;.=; ..=. .       .  .   .  =   .          ;  .   =.;..  ;;..; ;;.;;;.=;;.. ;.;;;;....;;;......;....  ;.......;X+.                    +=...........................................
................................. ............ .... .............  .  .;....  ....;=...  .... .  ;;.. ..... . ....... ....;...;; .;;.=;=.==;=;.+;;=;==+=;.==;=;+++;++=;;=+=;;;=;.=;==;==;;==;......=;+.;;=++==++;..+=+;;;.=+=+X=X+;++X==X==+;= ; ..= ..;;+=;+ ;X;; .=  ;X+ .  =    .. .=  .   .          ;  =; ;.  ;;;  ;  .   . ;. .. ;;=;=.; ....... ..+;=......=.............=.                    ;M=...........................................
.................... ................ .... ....... ...... ... .. . .......... ....   .. .. .. .. ....=..........;;. ;;.... .;=;... .;;.+..;.;..;=;;=;++;..;;=;.=++=+++=;=;;.;+===;=;;=;.;X=;;=;+...+;;+===;;;=;=XX;.;;;... =X=+;X=+;+X. ;==; X=. ;X.   ;+=;   .+. +.  ==;.=;;  . ..... ;.; ;  =   ..= .    ;       ...= ..;;  . ....;=.= ;;... . ;; .;=;;;.=..;;..;.... ......X.. .                   =+;...........................................
............ .... .... ... .......... ....   .... . ...  ..... ........ . . .. ..... .=; . . ..... ... ;= ..=.....=. ;;....=.. . ...=;. =....=;;=..; =+=.=+;.;=... ..;++...;=.......==....;;=X;..=;.XX++.;.;X.=..;.+...;.+;;X=;X;.;.;;+X=== +..+  .    .;+ . .=;= . .   +   .;.   .;;.++.. ..;..        . =   ;.. . ..=...........;;=;= ... . =;.... .;=..= .... .;=.........X;                      ;#+............................................
.................... . .......... .... .......... . ...... ............  ......... . ;...  . . ... .... ... .. .......;;;  .......=;;;==.;=.=;=;=;;=.+=.=;+;;;;.;;;.;++;..=;;.;;..;==;..;..;=+;.===.=+;=.+;+++;;+X;;;;.=;+X;.=;++;+.+;;=;;===X+; ;;=.=.;+=.    =;  .  ..  . .... +..; ...    = .  . ;;.;  =. .;  .....;.   .;.;;;. . .;..;=;..;;; .....;;..=.;..;...........;=.                      ;M=............................................
..................... .....  .................  .................. ...   .. ;... ...   ;..  .... ...... .;; .   .;;...;.... ;=;. ....=;.==;;.=.;...;.;===;;==+;.;==.;===;.;+=;=+;;=;;...=;;;..+;;...;...;+==+=;X;.++;==;;.++.=;=.=X===X=X==. ..==;..=  ;;;X+.= ;+=;     . ...    . .       .   .  .. ;;. ... . .. . ;;... ;;.. ;=....=  ;=;...; ;..=...... .;;.;;;.........;XX.                      =X.............................................
........................................ ............. .....   ..      .....;  .....     .  ;;.; ..... ...; .. ........... ..;.;.;.;.=;. ;;;;.=;.=;;; ......;;;;.;=.===;=.==;=;X==;;=;;;;+;.....;;;;=...====..;+; ==;;=;+;;=;;;.=XX===X=+;.. ;;;.+==; ==;;X= ;...;       .;    . .         ...    ..     ;...;.;;;......  ..   ..;...;..;=;.;.;.;;......;;;....;.;.......;+++..                     +M=.............................................
............. ............................... ....... ... ........ ..  .... ........... ..  ...; .. .;.;..; ..;;=. ...... .......;;==;.=.;..;.=. ;=;....;..=;==;.;+.;==.;.;+.=;=.;====;+;;;==;..;=;;=;=;;=;=. =X+==+;=;.;+=++=; ;=;.;;++=..==;X;;.;XX XX; ; .  .    .=;.   . . . .....=    . ...   ....;.; ..;;;;=. .... ...... .=....;.;;;;;.;.;;; ;;...;.....;;;.......;M.                        #X..............................................
..................... .................... ... ..... .. . . .......... .. . ... .   ..  ... ...... . ;.;.... .;..;.......;;==..; ==;=;=..;;;... ...=;.=;;..==;=..;;..;;.=;.;;=;.=.;==;.;..;+=;.=X=.=;.;;.+;;..;;+=.;;=;=;;;=+;;;++=.=.;==  .=+; .  ;. .===.  ...   ..=;.;......... .... ....;  .  . .; . ==  ;;.   . . . ; ;;.=..... .............; ;;..... . .;.;=.....;MX                         M;..............................................
............................... ............ .. ...... .. ...  .  ....... . ... ..= .==...   ....;;.......=;=.. ..=..... ....;. =+;..=;.;=...=== ;=;.==....=+.;;;;=.;+.=;==.....;..........;..;X;;==.....;..++.;;+X..+=;....==.XX;;==..=..XX. X+; =+    .  .+;+=    ... .... ....  . .. .  .=.. .. .. .  .;.... .... ..=.;...  .+. .; ...... ..  ..=;=...=. ;;....;.....MM                          M...............................................
......... ............. ............ . ... . ..................  ..;........... ........ +=...  . ..=;.  ..;..  .=;.. ;=;. .. ... +=..= =.;;..=.;==;=;;;=..=...;;.;;...;...;=..=;;.....==.;=X;..;+;...;+=X=...;;;..;+; .+;.;+X..;;.;;+;XXX==X  .= =+X X=. +.     .. ......;=.   . ...      ... .  .   =; .;. ;.;;.. . ;  ;= . ..;....=.. .;...;=.. .. ... .;=;;.== ...;MMX    .                    .................................................
................... ....... .......... ... ....  .. ...... . .. ;; =.... . ... .  ..;.   ;. .;;..... =. ...=.;.;;=;.;;;..;=....=..=;=. .;;=;.=;;;...=;=;..;....;;;==..;=..;=+....=.;;;..=;=;;;;...;;...;X=+..===X;;X.+;;;...;=;.X+;=;+;..=XX+=.X== = . .=.= .;.  . . .. ..+..   . .. . .... . .  ;;.  ....=. =; ;;.;; . = ......; ;;.=. .. ; ;=;; .;;.;;...;..;;.....;MM                          X#................................................
............................ .......  .... .....................;;..... ..  .. .. ....... .   ....;...... ;. =;; .. =...;=..;.;;  ;.;...==;=;=.=;..;==;=;.;;.;;=;;;.;..;..=++;;;.=;;...==..=;=+...=;=.....=.;=.;;;+X;X=+;==;;=;.=;==.=;XX=X++=+XXX+;.=;=. ;;X;=......;. . .;;     ...;  .;....  .;  . . . ;....... .. ... ....    .  ........==;;;. ;..;;..;. ......;XX.                          X#................................................
............................ ....   .. .... ...................  ... ........  ... ... . .;. .;.  .....==....... .......;..==;.;.;=......=;.;==;=;.=;;===.;;.++=;...;;;;;..;+;=+;.=;..;=..;;......;;+;=.;;.+;=;.;.=X=;====X..=;;=;+=;=;==;=.+=.;=++=. = ..;===. .. ..; ..  .; ..... .;..;;;. ..    .; .. .. .;. ........ .;=;...  .. . ;;.;;.....;;..;;=;.; .......;XX.                          ;M+................................................
................... ................... .... ...;=........  ..   ........  .   ...  .. ...  ..= .......=.. . ;;  .. ..;. . .;;;;.;=... =.;;.==+;+=;;.;.==.;.===.. .....;=;.;;;;;..;;..;+..;=;..;=.+;+;;.===+;X;.;;=+;.=+=.====;==;X===;;=;=.+X..;+=... .;.. ...  ..... ....... .....  ...;;... .;  ;.. ... ..    ....... .;=..;..;;. ..;....;. ..;;..;.;;....;....;M#=                           ++.................................................
.................................... ... .....  ;; ... .. . .. .......... . ... ... . ..... ..;=; .  ..;; ....;..=;  .;==;.;;;;...;....;..=;;.;.;;==. ==+;..+.;........;=;...=;..=+;=+;X;+=;.++=;.+;;.;=;==;.==;++;;===;+;;+=;==..=XX;+XX;;.;;+;==;....... .. .. .. ..;.....;   ....   . .....  .   .. ..; .   ;=.. .....    .;.=;; ;  ..;;.=.=;... ...;;.........MX;.   .    .                 =M=.................................................
............................. ............ .. ...  ..... .... .. .   ..  .....  ... . ... .  ..;...=  . ....=...=; ..;;.;..=.....;++; ..==......;=.;..=;;. =;.;+++;..=;;;. .=+;.=;++;=;+.;;=;;X;;=;+;+ ;.=+X;+;=;;.;X+.+;.;+=XXX;..;;.X;;..=;.;;+==........=  .... ..  . ....    ....  ... . ...  . .  .;= . . .  =. .   .......=... ... ...;;=....  ...........XMM                             =+..................................................
................... ........ ....................   ..... ..... ...    .. .. . .=.  ;;...;.;;....;=........ .....;.. ..=;=..==...=.. ;.;...=;= ;===...=;+;.. .;..=+;;===. ;=...=;+=.;...;;==;..;.........;.... ;X;=..;.=;X;+;;+;;X+...X;;+....;.....;.;=   =. ....  .... ...  ..  .=; .....+..=.. ... ;..... . . .  ;=;.  +; ;; =.. ;;.;...;;... .........;.....MM   .   .    .   .   .    .    ==..................................................
........................ ..........  .......... .....   ......... . .. .... .... ..... ..=.......;;;..   ........=; .=;.;..=..==;;;=;=.;;..;=.;=.;=;..=;;..;.;=;;.===+==;.;;..;=;;=.=;.;+.;;...=;;....;..=;.=+..=..;+XX+=+====;;+X=;..XX.;;.==++....+ .........    ...;........ ...;.. .. .. =;.;;  ..;.. ....;===.......  . .  =;;....;... .;. ..........=....;X                               ==..................................................
............. ..... ............. . .......  ..................................... . .. ... ..  ...;....;.;..;.;;;..=...;;;......+;;;;  =; .. ;;=+=;;.+;;;;=;=+;;;+;====;.==;==;.+;...;=..;;.;..;=.;;;=..;;.+.......;++==;+;.;=+==.;;.=M=+X============........... ;..;.  .... ..    . ....;..; .;    ....;. .;;;.  ..;;. .. ;..;;.;. . ;. ..; ......;;......;=M..   .   .    .                ;+...................................................
........................ .............. ................... ............... .................... ...;..==;..=;.;=;. ;; ;;;;....;;+=;.....;.=;..=++;;.;;===;.;======;=...;..;=+=+;==;;;;.;=;;.;..;;.=;;=;===;;;=;;..;.=+==....;=;X...=++###############X............;...   .. ;..    .   ...;..; ..   ......  ....; ...;;...;.;;; ;=....... ..;.......;;.....;X#X                               ;+...................................................
...................................... .... ....... . .. .......   . ..    ..;;....... . ...;;  =;;;= ......;..;;.= .;;;;=.....;+;;.... ...;;; ===;;...===;..;;==+;.;;;;.=.;+=;=;.;===..;;....=.;;....;=+;;;.;;==.+;=;;.;;=..=;.=;XXM################M=.... ..   ..........= .   ..    ...... ;.=;.;  ..... . ;;.=... .  .;......;=;..  ..........;..;.....;M#X.                               ;+...................................................
............. ........................  ... . ......=... ......   ..  . .. . .;.. ..  .  .......;.;=;. .......     =. ;..;  . ..;. ;;.=.=;;....;.;=;..=;;+=;...;=;+;===;.;.;;=;;..;=;;..+=....X.==.=X;=;;.+;+.;=+.; ......;;=;..;M###################;.......    ... .. ..;. ..  =..   ...  ;...  ..  . .=;.. .;=;=. ....=.;;. .....   . ;;.......;.=......;#X                                .+;...................................................
........................ .... .... ..... ....... . ...... ................. . ...=.   . .. ... ....;...= .. .......;.;;;;. ......+=.;;=;.;=;;==.....=+=..=;=++=... =...=;.;=..=;X.......;++;..;+XX+;; ;X;=;.;+..=X;..==..;X=;...M###################;...... .. ...  . ... +. . ..  .. . ... .   ;;  ..   . =.   ;;=  ..==.. .. ..;;........................;X.       .   .    .   .   .    .  ;X....................................................
................................ .. . ............ .... .. ...... ..  .   .;. .... ...... ...;.=...=;. ..     .....+;=.. .. .=;.=+=..=+. ;=;. ;=..;;..++==;;;= ;.;;.;=; ..+;;=;.+;;;=;+.;=;=;...;=;.X.;..;..+..;..=.;;==;+..;X####################M;.......... .....   ... ... . ....  ... .  .;; .. ..;...=.;....=.. ;;=.......=...=;==;;...............;MX                                 .#X....................................................
....................  ................ ...... ........ .... .. .  . ....  .;...  . ..;;.... .;.............= ...;;.+....; ;===. ==...=; ==;;;=+.;...;;==;..==.;;.+=.....=;=+=;;;.=+==;+..;==;..==;.;+=+..;;;...;;..=====+;;=X####################M=............ ...=.....;... .;. ..... .. .;.  ;.. ..  .. ... ...=;=;....... . . ...=.;;..;;...........;MX                                  .#+....................................................
....................................................   ...................   . ..  .... . .;;..  .;...   . .   .;..=;.. ;;==+;.....;.=;... ..;+;;.;;++.==;;;;;.;;;;.;.;;..;=;;===;=;;;.=...;=..=;;.;==;;.;;=;.;=;=;=.;;...+#####################M=............... .......=....;; ..... .;. .......  .   ;...;; ...;.;;.. ...... ;....; ;...............;MX.                                  =M.....................................................
.................................................... ;. ..... ..... . .... ... .;  ..   ... .....;;...   .....  ;...;..;;...;.;=.;.;;==... ..== .;;=++;=;;;;;=;===;.=;;;.==...;+=..;==;.;;;;=;......=.;;.;=;;;++;=;.....+X######################X...........   .. . . ...=....   ...   ;=....  .       .;;..;;  ;;..;;...;... ;.;;;=.;.................+X.                                   #M.....................................................
..................... ...............................;...................... ...;  ....; .... .    .. ......= ..;... ..=;.. ...;=+;;==;. .;;.;=.;..;=....;.=;;;;;;= .;...;;;;.;==..;==;+;;==;......==.....;+.;;;..+.;XXX######################M=;...........  ........ ;...  ;.. . .. . ..;.   .;. . =;. ...;...; .;... ....;;. .;;;; ...............;X=. .      .   .   .    .             +M=.....................................................
............................... .. ................ .. ....  ..................   . .. .....=....  ..... .=;;...... =. ;;=. ....;;.;=.;;.=.;..;== .=;.;; ;=++=....===......;+=;.;...=;.;;=+;.+.;=.;;.=..;;.;;X=..+;MM#########################;......................  ;..;= . + .      ....  . .. ; .;..  ...;.;==. ...............................;MX.                                    MM......................................................
................................... .......................... .. .........  ... .... ...  .;.... ... . .;;.. = .. .;=.=;. ..... .= .=; =;......;. ...=...=;.;=;;..=...=;=..;;......;...;=;..;;.... ==....=;.;..X#############################.................. ..... ....  .... . .=... ... . ...... . ...... .    .. .  ........................M#X.              .   .    .             M;......................................................
........... ....... .......................................... ............ . .... ... .............;=..;;=;  =.. . ....=;;;.;.=;.. .=;.;= .;;+;=;;..;.;;=;=.;+=.+;..==.;...;=== .;;=;=..;=...X+.;.=;...;;+X.;;X############################M;................=.+;.   ..  . ... .. . . ..   . . .. .   .......  ..  .. . =.;;. ;.;;...............;MX                                      X#.......................................................
................................................ ........................................... ..... .=;. ....  ..... . .. ==; ;;....;....;; ..;=.;;...=...;+;.;=;;.=..;;.=;;;=;;.;;=;.;;;;......=.=;.....;+===##############################M;........................ . ...  ......... ..;;........;  ;  . . .  . .  ..;..;.... ..............;==;+X.     .      .   .   .    .   .        XX.......................................................
.....................................................................;++++++++++++++==+;++++++;..........................;.........;......................;;.;;.....;;....+;=;..=;;....==;;;;....;....;+X#################################M=..................... ... .. ..   ;. ..  ........  .. .;..  .. ....... ..... .;..................;X#M;                                         X;.......................................................
.......................... ...................................;XXXXXXX##############MM#X######XXXXXXXXXX=...........................................................;;....;.;;...;;......;;;;.......+XX###################################+.....................=;. ;;....... ...;=. .    ;.....   ;.........................................XM=;                                          X;.......................................................
. ........................................................+XXXM####+++++++++++++++=++++=+==++=+===X#####MXXXXXXXXXXXXXXXXXXX+.....................................................................+X######################################+.....................;;..;=; ..........;  ......       .;.......................................+XM;                                            X;.......................................................
.......................... ...........................;MMM####======;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;===========#M=X+M##########MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;X...............................;MMM########################################+............................  .....  ...  ....................................................=M#;;                                             X;.......................................................
............. ....... .........................;=##MM=;;=;=;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;.;;.;;;.;.;=+XMMMMMM=..MMMMMMMMMMMMMMMMMMMMMM###############################;;##+XM#M;;;;;;;;;;;;;;.;............................................................;;;MMMX  .                         .   .    .   .   .    X;.......................................................
.............................................;;##MM+;==;=;;==;;=;;;=;;;;;=;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.;;.;;;;;.;.;;;..;.....;.;;................................==+MMMMMMMMMMMMMMMMMMMMM#############;M##############M+#+;;;;;;;;;;;;;;;;;;;;..;............;.........;;;;;....;;;;+##MM. ..                                                 M;.......................................................
............................................;M##X;==;;=;=;;==;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;;;;;.;.;;;;;;.;;;.;.;;..;;.;...;.;...;.........................................+XXXXXX#############################################X==M====;=======M=========X####====M####MX;                                                     +#;.......................................................
...........................................;M#XX========;;;;;;;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;....;............................................................+++++++++++++++++++++++++M################+++M#######XM###X++++#####X#+=+++=+#####++=;                                                       +#;.......................................................
.........................................XXX++==;;==;;=;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;.;;;.;.;;;.;;.;;;.;.;;;.;;.;;;.;.;;;.;;.;.;.;.;.;;...;......................................................................;================.  .===;====;===.    ====;.;       ===;=              .      .     .      .   .   .    .           +#X.......................................................
........................................XM+======;==;==;=;;==;;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;.;.;.;;;..;;;.;........................................................................................................ .... ... . .  ..  . . . .  ..  . . . .    .                                                             .M#.......................................................
.......................................X#============;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.;;;;;;.;.;;;.;;.;;;.;.;;;.;;.;;;.;.;;;.;;.;.....;........;.;........................................................................  . .  .. .. .  .. .    .     .      .                                                   .   .    .   .   .    X#MM+....................................................
......................................X###M============;=====;;=;;;=;;;;;=;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.;;.;;;;;.;.;;;..;.....;..;............................................................................................................................ .......  .  ....  .  ....    ...   .                                             XMM#+;;.................................................
...................................;==X#####X+++=;==;;=;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;.;;;.;.;;;.;;.;;;.;.;;;.;;.;;;.;.;;;.;;.;.;.;.;.;;;............................................................................ ..... ...    .   . .      .            .                           .      .     .      .   .   .    .               .XXX#=;...............................................
..................................=+############M=======;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;.;;;;;;;..;.;.;;;.;;.;;..;.;..........;..................................................................... ..... .  .. .. .  .. .  . .     .      .              .                                                                 =#M...............................................
...............................=++##############M;==;;=;=;;==;;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;..;;;;..;.;;............................................................................................. .  . ..    .      . .   .      .     .  .     .                                                                  +M...............................................
..............................=M################M;==;==;=;;==;;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;.;;;;.;;;.;;....................................................................................................... . .. ... . .      . .   .  .   . .   .                                                                            #+..............................................
.............................=M#################M====;;;;;=;;;;;;;;;;;;;;;;;;=MMMMMM+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.;;;;;;.;;;;;.;;.;;;.;.;;;.;;.;;;.;.;;..;;.;.....;..........;........................................................................  . .  .. .. .  .. .    .     .      .                                                                                  #X..............................................
...........................;MM###################MMMMMMMMMMMMMMMMMMMMMMMMMMMM########MMMMMMMMMMMX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.;;.;;;;;.;.;;;..;.....;..;............................................................................................................................ .......  .  ....  .  ....    ...   .                                                     #X..............................................
......................;;X#########MMMMM=;=;;;;;=;==;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;.;;.;;..;.....;..;..XM....XMMMMMMMMMMMMMMMMMMMMMMMMMMMM########M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................................................................................... .....      ... .        .   .    .   .                                           XM;;;;;;;........................................
.....................;+#######MMMM;;=;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;;;.;.;;;;;;.;;;.;.;;;;;;.;;;;;.;;..;;.;.;.;.;;.;;......................XMMMMMMMXMXXM#MXMXMXXXMMMM##M#XM#MXM########X;;=;;=;;;=;=;;.............................. ..... .  .. .. .  .. .  . .     .      .              .                                                                   X######M=========;..............................
...................==+######XX+==;=;;;;;;=;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;.;;;.;;;.....................................................+.........;==XX.+.=X;..XXXXXXXXXXXXXX########X====================;................. . .. ... . .      . .   .      .     .  .     .                              ;;;=                                  +++X+++X########X=====;........................
..................=M######XX=====;=;;;;;;;;;;;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;;;;..;.;;;................................................................................+++++++++++++################X+++++++++++=;+;=. .  . ..    .      .     .      . .   .                                       X##M+=+=+=+;                                 .====##########M+++++=..................
.................=M##+++++================;;=;;;X+++X=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+;;;;;;;;;;;;;;;;;;;;.;;;..;;..;.;...........................................................................................................============================;.=.= ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+XXX+X+XXX+XX+XXX+X+XXXXXX+XXXXX+    +##########M++++++++++++.++++++++;................======M+#M=======..................
.................X##;MMMMMMMMMMMMMMMMMMMMMMMMMMM##MM#M############################################MMMMMMMMMM;;X;;;XMMM+;.;.;;;;;;;MM++=.;=MMMM;;;++=XX;MMMMMMMMMM;XMX..............................................................  . ..... .. ..... .    .   . . .    .         ;;;..;.;.;.;..;;..;.;.;.;..;;;.;.;.;;;..;;;X#############################X   .M#################+...;M###+====;......................;.=;.........................
.................X##M#######################X==============================;==;==;==;;;;;;;;;;;;;;+#+M######MM#MMM#####MMMMMMMMMMM#####MM#####MMM#####M##########M###MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.....................................................    .. .  ..... .  ...   .                                                               MM    X########M        =MMMMM;;;.........................................................
 ....  ..........X+=====X+==M=++;=====;=;;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;M=X;;.;MMMMMMMMMMMMMMMMMMMM;MMX+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM######+;;;;;;;;;;;;;;;;;;;;;;;.;..;;..... . .    .   .   .    .       .                                                                         MM.   XMM##MMMX   ....##MMMM..............................................................
.................++====+++++++=+=+++++=++=+=+=+=++==++=+=+=+=++=+++=+=+=+=++==+============================;.;..;;..;.;.;.;..;======;;====================;...............................................+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#####+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    ;;;;;;;  .             .;;;;;;M#M;;;;;=##+;;;. ;XXXXX+..................................................................
 ....... .........XX++X####################################################################################X++=++++++++=+++=+X######XM####################X++======........................................................... .. ..  . .  ..+XXXXXXXXXXXXXX#######M++XXXX++X++X+++++X++++++++++++++++++MX++############=;;+#######X;M=;;;;;;;;;;;;M#######+++++M####MXXX+..........................................................................
..................X#############################################################################################################################MXXX+XX+XXMX#X#####+++++++++++;...;=................................................. ... . .. .   . .      =======;     .     .     .                  ;.  ====+===+=====+X=========================##X=== ====M#M++;..............................................................................
..................===########################################################################################################################X+++=;;;=;;;;====+++++++MX#######MXXXXMXXXXXXXXXXXXXXXXXXXXXXX.X+;=.+................... ... . .. .   . .   .  . . . .  ..    .                                               .                         ;;=XXXX#M=====.................................................................................
;=...................;+##################################################################################################################M====;=====;;;;;;=;;;;;;;;;;============;=====;=;====;=+#+=;=;==X#M##MMM#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMMXMXM+                                                             .XXXXXXX+;;;;;;......................................................................................
... ...................;;;;################################################################################################################X===;;=;;;;;;;;=;;;=;;;;;;;;;;;;;;;;;;;;;;.;.;.;;;..;;;.;.;..;;;;;;;;;;;;;;;;;;;;.;.;.....X############################################MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX.;;;;;;;;............................................................................................
.............................=MMMM############################################################################################################+=====;=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;.;;;.;..;..;............................MMM#########################################################################################MMMMMMM=.........................................................................................................
. ... ............................XXM############################################################################################################M++=+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;.;;;;.;;;.;.;.;;;..;.;.;........................;XXM#################################################################################MXXX+.................................................................................................................
............. ......................=XM###############################################################################################################X+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................................=+###########################################################################XXXXX;.....................................................................................................................
.................  ...................=++++++M#########################################################################################################MXXXXX+=;;;;;;;;;;XXXXXX=;;;;;;;.;.;;;..;.;.;.;..;;..;.;...;...........................=+++=M############################################################X++++++++............................................................................................................ ..............
........ ....... . ......... ................;=====X##########################################################################################################MM=;;;;;;;;=#####MXXXX=;;;X;;;;;;.;;;;;.;;;;.........................................;==#XX##################################################=====;...................................................................................................................... ..=;........
........ ........... ... . . ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=#########################################################MMM;;;;;;;==X#######MMMM#M+;;..;.;.;.;..;;..;.;...;..;................................;..X###########################################M;;;;;................................................................................................................ ......... ....;.........
..... .. ........ ........ ............................................................................;;;;;;;;;;;;;;;;;;;;;;++X###################################M#X;;;;;;;;;M#########X;;.;;.;;;.;..;..;..........................................;#######################################M;;;;;;;;...........................................................................;;............;;.................... .. .;;........................
.... ......  . ........ .=;... .. . . .... ........................................................................................................................;MMM+=====;;==###MMMM;.;==;;===;;.;..;;..;.;.;........................;;;;;;;;;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;................................................................;.......;.................;.;;.=;....;;........;...... .;..=....;. ....=. ...=. ;=. ........
........... ....... ..... ...  ...........  .... ;............................ .. ....... ...;......;;.........;....;...................................................+XX#M++M#XX+;;;.;;X#######X=====;...;.;...;.....................;M##MXXXXX=...................................................................................................;;..... .;;..........;;..;;; ==;.;....== . .. ..;........;;.....;+;.....  . ......... ..;;....
........ .........  . ......... .  ...... ............ ;........... ..;........;;......  ;  .;=.....;=.........;....;......;;............................................=+####XX;;;;;;;+X##############M+++++=..........................;M#X+......................................................................................................................;;.....;; .=;;...; . ....... ..  .;;...;... ;.;;;.;=;. .;...;;.................
.........  . .  ..... .. . ............. =.......  .  ... ...; . ..  .;.  . ...=;.;...;;.;....;.;......;;..............;;..;;......................................;XXXXX#+++++;;;;;;+XX#M===M==+#############MXXXX+......................;==MX+.........................................................................................................;.......=..;;...=;==.  ;;...  ..... ; . .........=;.. .  .;;..........=..... ..............
................ .;  ....................;...   ..     .. ...=.. .... ;.. =..... .;......=...=;.; ......;;....... ...;;.;.=.....=...............................+XXM####++;;;;;;;;;;;X###X.. MXX+;;X################XX=......................;##+........................................................................................................;..... .;..;;=.=;;==;...==; ....;; ;=.==;... ...=;..... ..... .  .....;;........;;.........
. ... . .   ... ............. .. .. . ... ... ... ...= .. ..  . ... ...  . .  ......;==; ;=; ..;=;......;=....;=......;...;...=;;...........................MMMM###=====;;;;;;;;;.=MM#+=;;....###MM##M..+#############MMMMMM+.................;=#MM;.....................................................................................................=;.......;==.;. ..;.;==  ....;= ...; ... .....;. .. .. .. ... ... ;=;..;........;..........
.... . ........ . .. ... ...;; ....  .  .. ....... ... .. .  . ....  .;=; . . . = ....;.. ;....;.....=. .. ....;;........=........................;;;;###########+=;;;;;;;;;;;;;;####+;.;...  ##########+  MMMM#################M;;..............+###;;......................................................................................... ...;=....=.  .=;... ..=. .=.=+= ...=;.;=.=;= ;=;... .    =..........  == ..... .... ... ..........=
...  ....  ......... ..... .. ... ;............... .; .  .. ..=. ..;... .=.;=.   .  .;=;.;=;+;.=..;;..+.......................;;... .............;X#####MMMMMMMMM##+==;;;;;;;;;;M##X;;;;..... X############;.. ;XX#################X..............+MM#M====............................................................................................. .=.....= ;=... .....=;=..;;=..;==.=; =.; ;. =;;=;+....... .. .=;=..  . ... .......;=.......
... .... . .  .......;............= ..... ....;... . .....;..=..;..=...   ........  ...=.;;.=.. ;.;;;.;;.......;;..;. ...........;=..;;........;=XMM###X+=;;;;;;+X###M+=;;;;;;;;M##M+++=;... ..X#############M;;  +X##############XX=................XX####+==;.......................................................................................... =..;;..;.;.;=..=.;;.....==+...;==;=.;.=;  ;;;;;.; ..  .  . ...=..................=........
... ......  .........;..... ...........   .. .;..    ;;.;.;  . .;...;..    ;.;.... .;.;=.....  .....=..=  ;;...;;;;;...;;.. ...;..;..;;;.......;#M+M##+;;;=;;;=;;;+####MX++X=;;;+XXXXM##++++++  X###############X==.+X+++###M++++=.....++++++++++++...;+++++++++++++=................................................................................;.......;==;;..;. .;.=;;;..;.;;;.=.=;=;. ..===.;=;..  ...;;;..  .;. ................... ..... .
 ....;....... . ..... ;;   . ...... . ....  . .. ..  ;;.;;...= .   .+..    ; .;.;....  ;..;;. . ....;..;..;; ....;;...........;;.......;.......;#XX##X;;;;;;;;;;;;;#########M=;;;;;;;=+++X####++X##############X===..=XXX#==;........=X############XXX=  ......==M##MXXXX........................................................................;...;;;. =..=;;;. ....;;..;;.... ..; ..;.;. ;;==;;. ; . ...;.;..   .............;........ ....... .
.....;.... .. . ...... ...... ..  .   ..=.... .... ...  ...  ;.;;  .;...; . ..;.=.. . ;;.=;==;......................=...;;..;;;................M#X=M#=;;;;;;;;;;;;X#M+=+===+==;;;.;;;;;.;;===M##########X======;;..XXM##+=..........+M################MXXXX......;;;+####MMMM=...................................................................;;;=.;;..;..;...=.....  .  ;..=; . ..;.=; ;.=.;=;..  ....=. .;;...;;  .. .;...=.;;;. ............;.
...........  ... .  ..  ........ . .  .. . . .. ... .. ...;.=== ==  =;=. .......    .. ..;... ..... ..=........;;... ...;....... ...;;.........##X=====;;;;;;;;;;;==;;;;;;;;;;;;;;;;;;;;;;;;;==###X;=;=;;;......+MM###+;............+######################MMMM=.....;;;M####MMMM.................................................................;.;;=..... .; .;=;=.... =;;..; .;. =;.;;;; .  ... .... .;.. .=;. .  ... .....;....... ....  .;; ..
....... .... . ..  .... ...... . .. ...  ... ... ... .. =.;; =..;; .  ..;;....  .=;;.; .=;=...... ;;.........;..=;.......;......... ...........##X==;;;;;;=;===;;;;;;;;====;;;==;;===;;.;.;;;..;.;.;.;..;;;;;=##MMMM.;..;;;;;X#########MMMMMMM####################M...... .  =MMMMMMMM;;;;;;;;......................................................... .=;....=;;..;;..;+=;;...=. .==;=..  ..=;...;. .;;..=... ........ =..................  ......
.....;....... =... . ...........  ...;;... ......=.. .....      .;;..;=;;.;.....;+=. .;=.;=;;;;;. .;.........=........;;.=...... .....;........####X;=;;;;;=##M;;;;;;;+####M;X##+=###X;.;.;;;..;.;.;.;===X###MM=;.;...;=M##############====;..MMMMM######################M;;;.. .    .XXXXM###====;................................................ ....;....;..;= ;.;.==;=;;..;  .=; ; .==   ;;.  =+=;==;.   .; ...... ..;.... ;................. .
.....=........ ........;; ......  . ...  . . .. ... ;..  ;......... ..;;..=...;;=;....;;;..;;;==;....;..;;........;...;;......;;.....;=;.......#####===;;;=M##X;;;;;;;+####M;X########X;;;;;;;;.;=+=++######X......===X##XXXXXXXX##########X=====..+XXXXM#####################======.=. ; ;X+XXMXMX====;................................................;...;;..=.;;;;.=....;. = ..;;.=.  . . ;.. ..=... ; .  .. ..;.. ...;;....;.........;;.. ... .
..............   .. ...   .  ..   .....  .. ..;.;; .;; .;;;. .;. ...  .. .....;.. .;;...;..;;...;....;..;;........;.;;;;......;;.....;;........X####XX;;;;M###X;;;;;;=M####M;X#########+++++++++X###########;...=+X###M++........X##############M+++++=.=++#########################X==.=      = ;+M###M++++.......................................;........;;.;;.;;;.;.. ;;..;;;;.  .  .=;;..;.  ;..;;. =..  .. ...=....  . .   ..........;. .;....
 ..............  ..... ..... .  . .......   .... ... . .;;.  ;=...;;  .;. . ;=; ....;.. .;;..  ...;.. . ;;.........=............ ..............;######XXXXM###M;;;;;;+#####M;X##############################+...X##M==;...........X###################M=...===X########################XX+++X.     ;=;=+####XXX=............................=......;........;. ;. .===.....=; =.;=;. ..;.;.;. ; ..;.;....;... . ...;. .....; ..............   ;;....
.. ......... ..... ... .........    ...  . .  ..  .......;;;;.. . .=...=.... ;.  .;;.....;=.;.  .;;.... ;=;...;;...;........;;.....;;..........;+#############M;;;;;;+######MM#########+==========;;;;;;;..M#X;.;==;.;............;+#################M=;......;=======X######################MXXXXX..   ;;;..;;.+MMMMMM;....................;.......;=....=;=.;;.. ;.;.== .+=;=.;=;. .=;;;.=;.. =.=.;....  .;..;= .   .  .;...........;=. .. ...;...
... .... ..... .....  . .. ..  ..  ..   ...  ....=  . .+;.;;..... .;..  ..   ;; ... .;.  ...... .......................;;.=..;; .=.;+;..........=##############MMMMMM#################+;;;;;;........ .    M##MMMMMMMMMMMMMM+.......X###############=;................;;;;#########################MMMMMM.X        ;###MMM........................= .;. ..;.;++..= =...;+= . ;;=.+=.. += .   = . ;. ;=.....;; .;=  .  .... .... . . . .;.... .......
  .. ...... . . .. .. .. . ..........  . .  ... .=......    .. . .=      ..;; . . ;;.;...;;;  . =.=+;........... ...;...........;................=###################################+=;;;;;.;.......       ######################X;X##########MM+............................XMMMM########################M;X..       +MM###+;.................;;;..;;+;;==.=...=... .=. ... . ;===== +=.  = ..= ... ... ..=.... ;; . .=  ... ..  ..... ....... ..
  ..... ... ......  .. ..  ....;..... .... ... .  . ....  ;;...    ...;   ...;. . ...;;; ==...=.. ;;.;..............=.;;....;;..;.................=MMM############################MM#+;;;;;;;...... . .     ##MMMMMM##########################X...................................=MMM##########################=.        XXM##==.............. ..=;;=;;+=;;......;.;  = ;.;=;. =.... ;;.;.; ...;.=.==;;. .  .; .. =   ;.. ..  ... . . ....  .....
  .... ...... ..... ..... ...  .....     ........;;  ..   .. ....    ....;...;..; ...;==..;...; .....=.;;.;;................. .. .;...................XXXXXXXXXXXXXXXXXM##XXXXXXX+.+#+;;;;;;..........      #M=;;;;;XM#####MX+++X++++M#+X####X........................................+XXXXXM#####################==;;;;;;;;X###M=...................;=;=;;;.;;;;;==;.;. ...;.  ; ..===...   . ..=;=.;;. ...  ...;.;...=. .... .. .  ...... ........
 ..  . .   .  ..... ...... ..  .....  ... .....  .; ...;... . ....  .; ..;;; ..;;.. .....;;. .;.=;.....=;...;....;.... ......;....;;;..................................=++.........+#+=;;;;;;;..... . .     #M=;;;;;;+####+=.       ;==  ==X#X..............................................=+++X##########################M+++++=.........;;=;;;.;=.;.;===;=;..;;;+==;........;= .;=+.....  .;.;=;.;=;;. .;  ...= .;.;=.;;  . . ... ;.. ... ......
  .  .... ........  ...... ....    .  ..  ...... .. ..=.;;;..... ..    ..= ;  .= .. .....=.. ;;.;;....=.....;....;=. .;;.=..;;.....;;.............................................;M#+;;;;;;;...... . .     #M;;;;;;;;X##=...       +;     +##..................................................;===M+#############M=======;..............;;.+;=;.;;=;..=+..+=.;.==.;=.  ...;;...;.;;; .=;..  .;=.. ...;.. =;... ; .;.....;;. .; . ..;= ..;.........
......... .. . ...... .. ...... ... .... .. .. .... .  ..;;..... =;..   .=.;=;...=....=;.+=.  ........;.... ......;...;;.=....... .... ...........................................=##+;;;;;;;........ .     #M;;;;;;;.;;;......     +;     +##......................................................;;==X###M======;.....................;;=;+.;.=..;;=;=. ..+...;= ...... .+;=.  ;+= =. . ... ;.. ; ;  . .;... ...  .. ...... .;;..=.;..;. ... ....
....... ........ .     .  .......... ... .. .  ....  ......  .   =;  ;=.....;.....  .....=....==.;; ......... ............ .....=.. ..............................................=###=M#MM+.;........      #M=;;M=.;;;;..... +M..  +; MX   X#..........................................................;;;;;......................=;.......=;;=.=;=;+=..=. =;.=+;;;=;.= =;; =;.  ..;  =   . . ;.;= .... ...  .... .. .... .. ......  ;=.. ...... .
...............  . ...... ..........  ....... ......;  . . ;;...;;.=..;....;;;;..  =.. ............;;.. .;;.. .;= .+.........;;.......;;;=;;.=;...................................=########X;....;;;;;########MX##############################............................................................................................=;.=...;; =++++.=;.;;;..=.;==+;.=.;; =.;=.; =.=..   . .. ...;;.   . ;..... ...+= .... .  .................
 ... .. . ..  ....... ..... .   ....  .  . ..  ....;== ........ .; = .;....=. ;;. . .. ..;.... ...;;.......... .;;.=... ....;=;;......==+;==;.....................................=##########+.=+############################################M.........................................................................................;;;.;.;;;;=+=;=++=..=..;=. ...;.=== ;;;.+;. . ...=;;..= .; ... ;. . =... .;.. ;;;=....... . .................
............... ...  .. .  ...  . =.     ... .  ..... ;..... .. ...........;..........;..=; . .;;; ... ..................;;.;;.;;. .....=..;;.....................................;M##########+##############################################;...........................................................................;.........;;..=;=;;;=;;====+===;;+..;;; . .. ;=......=+;; ..;;.;;;.;=.  ..;  =. ;;=;.   =;; ..=...  ;.... . .....;;........
............. .....  ..       ... ..    ..   .  ...   ;;.  . ;  ..... .;.;;......  ;....... ...;...  .=..... .........;=;;;................;;......................................+########################################################X;...........................................................................;.........;;.=.;+;...;.;===;;;.;=+.;...;=.;;;==....;..;   ;;=;; .;....  .;; .;   ;      ...   ;;;....  .;........;;...;....
 .. ...  ... ........ .. .... ... . .. ..    ..... . ..;   . ; .... =.;=;;...  .......;;...... .;...; ;......=.......;=;;.=.....=..................................................+##################################################+=====;...............................................................;;........................;;====;=;.;;==.==;=++ ;=.;+; .;=.; .;;.;=.   ;;=.. . .;= . ;.. .; .    .   . ... .............. ........;;. ..
 .. ...   . .. ... .....  .... . .. ... ... . ...  ..... ..; . . ...;;=......;.  ==..;...  .=; .=.;;=...=;=;.=;;.=;.=.;...;.....;.....................;=...........................;X################################################+.......................................................................;..........................=;==;;=...=;=;==;;;== ;;;. ; ===  ;;;.==;    == ; ..    ;.;. .=.. . . .  .  ..  . .  ...... . ;=. ......;;..
.........   . .... . .  . ..   .   .. ...... ... =. .  =   = .    .=.;=....  . ;= .;=;  =.... =;++=+.== .==+;;=.=;..;=...=................;;....;=..................................;X##############################X;;;;;;;;;;;;;;;;......................................................................................... ...;;..=;+=....=.=.....;;+;.=;==;.   .. . = ..   . .==; = ..     ..  . .;=;.  . ... .;; .. . .  .... ................
... ... .... ...... . ...   ..  ...    ....     .  . ..  .... .   . ..  . .;=;. ; ;;;=..;;.. ;+ .;.. .=.;=;...;;;;;...;;..;...........;=.................=;..........................+MMMMMMMMMMMMMMMM#######M+...........................................................................................;......................;=;;..=;;..  .;;. .=.;=.=;.;.;;=;+===;.= +=;.;+;.;=   ;. . . =       ;; = ..    . .;. ..... . .;. ..... .;.........
. .. .... ...... ... ..... ........ .  . ;.  .   ..=.     ;...   .. . . . ....  ;=+==;;.==;;..=; ..==;=.;.==..=;..=..... .=...........=;.........;;.....;;.;..;......................................;XXXXXXX.............................................................................................=.................;;......=;..=.  =;;; ;;;+=;;;===;;;=;== ;;;=. ;; ;=; ..=.;.;.; .  ;   .; .  .. .  . ..............  ;. .......=;.... ...
.......... ........ ......  ......    .  ;   ..... ..   .   ;   .;..  ;. . ...... =;;;.;;;=.;=.....=;.;==.;+=..;.;;..;...........................;;........;.;;........................................................................................................................................................;....;;.;;.....;.;;;;==;;.==;=;=;==. .++=;;=.;...;.;=;     . ; .;.. .  .; .==. .;=;  ...;..  .     ....     ............  ...
....... ... . .....  ..   . ..;;.     ......  ..     .             .; .. ; ...;.; ;; ...+;. .;.==;;;=.=+=;..+.;;.;;..;..;;......=........;.......................................................................................................................................................................= ....;.......;;.;;..+.;==+..;;;=;;..=.=;...;=;;+=  . ...;;;..==;     ...  ; ;; ;;  .;;..; .. ;...   .   . .  .;. ...... .........
.  .. ..   ....... . ..   .. . .  .     .... . .    .  ;   ;  .;.;  .   .;.   ;=;.;  .; =. .;;..;;;...;=;;=.;...........;.......;......=.;.;;....;;..................;;.......................................................................................................................................;;.;...........;;.;=;==;;..;;;.==.;;=;=.;..=;=;;. =..    ;. =;;.=.... ;..;.;. .  . ... ;=.  ;     . =  ;... .  ;  .. . .. . .........
. ....  .   .. ;; .    .  .... . =.     ..  .;.      =          .;  .      . ;   =..=. .; .;;=;;=;;;; =;;;;.=......===....=............;...;.... .;...................;.......................................................................................................................................;.... .....=...;...;=;;= ..;;..;=;=.;..=..;;=..=   ==;   .. .; . = .. =;..;;..   =.. .  .  ..;  ..  .  . ....;  ....  ... . ...  .....
. .. ... ......... . ..  ..      ..    ..  ..       ; .=     =  .=;   ;  .  .;  = ;=.  =+= ..=+ =;.;; = .;.= ;=.......;......;.;;;=.....=......................................................................................................................................................................=;..;=....;=.......;+;........=......=.. ..+ .  . ==.; ; = .; ..= .;...= .;  . =....= ..  = .. .. .;;     .. ... .. ... ... ...   . .
.......... ...  ...  .   ...  .   .    .=      . ; .    ;;..        .   ;.=.=;.==. .;;===. ;;.;;===;;.;;=..=;==..;. ;..;.....;;.;..;;;.;..;..................;.................................................................................................................=..............................;;..=.....;.............==.....=...=..=.....=...  .  ...=; ==.. ;  .;;=. ;    . ..;=...... .   .;; . . ;; . ..  ............... .....
......... .. ...  .  .   .  . .. .    .        ..     ; .  ; .    . ..;  ;;;. . .;; .  . ;.;;.=+..;;=;=.;;...;...=;.;..;;...;.;;=;;=;; =.;;............;.....=.......... ...............................................................................................................................................=;.;;........... . ;;.;..;;....==;.;=.  ;. .; .;..;;=;.;.;.=;     ;.    .   ; ..   . .   . .  .... ... ...;........  ... ..
....  .......        .   .  ..           .     ; .;    . .  .    .; ; . .  .= ;.;  .. .. .===;==;=; ;;;..;..;;.;.;;;;;..;;.;;.;;.;;;..............;;..;;..................................................................................................................................;;.........................;;..;.;=...............;.;.;;.;.;=+;;.+=....;... .=. .=.;;=;;. ;.;  .. .  .      .;  . ..   ......   ....   .;..... .;..  .. ..
.. .  ... ..        ..       .. . .   .. .      ;.     .    ;;  .;    ..=.=.=..= ;.=;.. ;.==;.;. ==..;;.  ..=.;;...+;;;;;..;;....=;;..;...........;;.......=.=............................................................................................................................;;.........................;;....;;..............;;  .;;.==;==.. .;;=.;  ... .  ;;.. .;.;;;.+.;.. =... .. . .. . ....;. .. .......   .....;.....;.. ......
.  .... . .. .   .   ..  .     ...     ..   .. .=     ..     ..  =.   .=;.. ..;+=.=...; = ;;;.=..;;;.== . ..+=..;;.+;=;;....;....;.;..;.....;;.............;.;............................................................................................................................................................;;....=...=;.....;.......=. ;;.= .. .;...  .;. ;  . ;  ...==. .. ;;= .. ;. ;   . . .. ..;;   ...;  ...... ... .. ..  .....
...... .. .... ....      ; ..  .        .   . ;     .   .     .  .= . .;  .=.; .;..; .= ;;=...;=...;;; .....+;..=;.;.;..=;....... ....=;==..;..........................................................................................................................................................................=;..;....;.;;=. .;;.=;..;=. .=....= . ;;= =..;. ==. . . = .. .  . .. .  ...= .  ;;.   .;... ... ....  ................=......
.......  . .... ..... ..... ..  .        ..     .    = =     .  ..   =...===.==.. += ... . .. .  ....==.....==.. ...++=.......=;....;;.;...=;........ ......................................................................................................................................................+=...........;..;+;.....=; . ...= .;;....;=;..==;=..   +=.; =...;;=. .    =.. . ...   . .;; .= =;   ... .. ........  ;;..  ....... ....
.. .....    . .  . . ;...   .             =.   .  ..    ..;=.  .;   ;  . .. .=;; .=;;==== ;.;..=....==...;; ;.....=..;.;....;..........=.;=;;....;;..=..;;...................................................................................................................................;..;;....................;..=.;...........;.;;;..;+;;;;;=..;.=.;;...=..;+. ;=.;;.=.;=. ; ..; ;... ..;.  ..    . ..  . ;;..... ...  ;...... ... ........
.... .. .... . ....    ....  . . .            .  ..... .; ..; .       .=; =.;.  .=;.;; .; ; .   ....=; ;;;=.=.;.;;..;=;;;..;;....;...;;.........;;;;...;=;...................................................................................................................................=..;;..............;.....;;. ==.;.=.......=.;;;..;=.;+=.....;..; ;;   .;..;;; .;.;=.; . .    ;;... .. .     .;...  .. ...   =...  ;=....... ......  ...
   ..... .    .  ..  .. .. .   .    .   .       ..       . =;      .   . .+=;   =;+=;;. =.;.;. .==;.;;.;;...;=;.;;..;=;..........=;..;;.........;;;=;..;;;;.....................................................................................................................................................;.......;.=;.;;;;;;...;....;..;;..=;...;=;. ..;.;..;;..;.  ...  .. .....  .. ;.. ...      ;;.;...   ... ...... .. ............. ....
   .....     ...    ..  .  ... ...      .    .  =. .  .    ;;  .;; .;;;. ..=. .=+..;.;; ..;; ...;+;;=..;;==;;.;==....;;;..=.......;;;............;;.....;=;..........................................................................................................................................................;;=;......;;;;...+...;+;...;;;. .;;.......;=..;.;;  =;    ;;. .;  . ...;.  .;;.    .. ......  .;.... ..... . ........ .........
.  .....   .. .. ..      .  .     .     ..   ...;        ..  ;..;.. ;..  . .   =. =;..;===;==; =.;;=+;=;=;;...;==;....;=;.;........;;.. .........;;.....;;...=.....=.................................................................................................................................................;;;. ;;..........;. .;=. ..=; ..=;;;....;;=;=....;. ;;..  ;.. .... ..  ;.......;;.=;. .. ..... ;  .... ..  ....................
.. . ....  . .    .  ..     ..  ; ..        .  .         . .        . ;     ...    ;= =;;. ;=.. ...;;= .;;;.=;=.....=;;.......=;........=.;;.................;.....;...........................................................................................................................................=;...... ...;..=.....= ..... =.= =;..= ...=+...=; .... . .= ;;  ....  ......  . ...=;=...... . ...........  ...... . ............. ..