****z********************iiii*+*iiiiiii*#*iiiiiiiiiiiiiiiiiiiiiii*+#*iiiiiiiiii*##**iiiiiiiiiiiiiiiii*+iiiiiiiii***z++zW***iiiiiiiii**..i*iii;:.````.;
****#+*****++***********iiiiiii+++*iiiii*+#*iiiiiiiiiiiiiiiiiiiiii*+#**iiiiiiiii*+#**iiiiiiiiiiiiiiiii*+iiiiiiiii**+#++M+***iiiiiiiii*;.,*iiii,;`````;
*****#*******##********iiiiiiiiii*+#+iiiii*#+iiiiiiiiiiiiiiiiiiiiii*+#*iiiiiiiiii*+#**iiiiiiiiiiiiiiiii+**iiiiii*i**#++zn***iiiiiiiii**,.;*iii;.:````.
******z********##****iiiiiiiiiiiiiii*##+*iii+#*iiiiiiiiiiiiiiiiiiiii**#**iiiiiiiiii+#**iiiiiiiiiiiiiiii*#iiiiiiiii**+#++M***iiiiii*iii**..i*iii.:.````
******zz*********##+iiiiiiiiiiiiiiii*ii*##+*ii##i*iiiiiiiiiiiiiiiiiii**#*iiiiiiiiiii*#**iiiiiiiiiii*iii**+iiiiiiiii**#++n#***iiiiiiiii**;`:*iii:`;````
*******W+***********##*iiiiiiiiiiiiiiii**i*+##**#+iiiiiiiiiiiiiiiiiiii**#*iiiiiiiiii**#*iiiiiiiiiii***iii+*iiiiiiiii**#++n***iiiiiiiiii**..iiiii`,,```
*******nM*********iii*##+*ii*iiiiiiiiiiiiiiiii+##zz*iiiiiii*iiiiiiiiii**++*iiiiiiiiii**z*iiiiiii*****iiii*+i*iiiiiii*+#++z+**iiiiiiiiii**;`,*ii*,`;.``
*******#Mn*******iiiiiii*##+*i*iiiiiiiiiiiiiiiiii*+##++**iiiiiiiiiiiiii***+*iiiiiiiiiii*#*ii**********iiii*+iiiiiiii**+z++#***iiiiiiiiii**,.;ii*;`.;``
+******+nWn*****iiiiiiiii*i*+##**iii*iiiiiiiiiiiiiiii**+####+**iiiiiiiiii**+*iiiii*iiii*+n++**i**++**iiiiii+*iiiiiiii**#++z***iiiiiiiiii**i`,*i*i``:..
+******+nnWz***iiiiiiiiiiiiiiii+#z#*iiiiiiiiiiiiiiiiiiiiiii**##########++++##++++######+**#****+***iiiiiiii*#*iiiiiii***z+#+**iiiiiiiiii***,.*i**,`.:`
+****+++nznWz*iiiiiiiiiiiiiiii*iii*#z##+*iiiiiiiiiiiiiiii**iiiii*iii*******+++*************z++**i**iiiiiiiii+*iiiiiiii*+#++z***iiiiiiiiii**i.:***:`.:.
+***++++nzznWz*iiiiii**iiiiiiiiiiiiii*+##z###+**i*iiiii*iiiiiiiiiiiiiiiiiiii*+#++***++++++**#*iiiiiiiiiiiiii*+iiiiiiiii**#*z+**iiiiiiiiii***,.***;``.;
+**+++++nzznzMzi*iiii+*iiiiiiiiiiiiiii***++++#zzz#z##++*****iiiiii****+######+++++++++***iii*#iiiiiiiiiiiiiii*+iiiiiiii**#++z***iiiiiiiiii**;.:+**..`;
*+*+++++#nzzn#xn*iiii*++i*iiiiiiiiiiiiiiii***+++++++++##zzzzzzzznn###+++++++++++++***iiiiiiii*+iiiiiiiiiiiiiii+iiiiiiiii**z*z+**iiiiiiiiii***..+**,`..
*+i*+++++x##zz#nx*iiiii*#+iiiiiiiiiiiiiiiiiiiii*****+++++++++++++#zz++++++++++**+*iiiiiiiiiiii++iiiiiiiiiiiiii*+iiiiiii***#+z#**iiiiiiiiii***;.i**:`.`
*+**+++++x##+zz#nM+iiiii*+#*i*i*iiiiiiiiiiiiiiiiiiiiii*******+++++++zz+******iiii+*iiiiiiiiii*i#*iiiiiiiiiiiiii+iiiiiiii***z+z***iiiiiiiiii***.,#*;`..
***i*+++*zz#*+z##zx#*iiiii*+#+*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**iiii*+#+*i*iiii*i+*iiiiiiiiiii*#*iiiiiiiiiiii***iiiiiiii**#+z***iiiiiiiiii***:.+**...
**+i*++**+z#**+z+##nn***iiiii+z*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*##+*iiiii*+iiiiiiiiiiii*#*iiiiiiiiiii**+iiiiiiii**+###***iiiiiiiiii**i.;+*.``
**#ii**ii*n#***++*+#zx#+**iiii*#n+*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+##+iiii**iiiiiiiiiiii++iiiiiiiiiiiii+*iiiiiii***#*z***iiiiiiii*i***..#*,`.
**+*iii*iiz#****#**+##zz++*i*iii*MM#*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+##+ii***iiiiiiiiiii++iiiiiiiiiiii*+iiiiiiii**++z***iiiiiiii*i***:`**:`.
***#iiiiii#z+****#***+##n#+***iiiizWMn#**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+#z#+*iiiiiiiiiiii#*iii****iiiii#ii**iiii***#++**iiiiiiii*****i`;+;`.
***+*iiiii*z+*****#****+#zz++**ii*i*xMxxn+*i*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+++++***iiiiii*#********i***+#**iiiiii**#*#***iiiiiii******.,#i.`
****+iiiiiiz+******#*****##z#++*i**i*#xn#nnz+*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**++++++++##+++++###+++*+*iiiiiii***##***iiiiiii******:.+*.`
**ii#iiiiiiz#*******#*****+#zn#++**i*i*#xn##nxnz+*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*iiiiiii*****+++**iiiii*+iiiiiii***#++**iiiiii*******i.**,`
*iii+*ii*i*#z+*******#******znzz#+**iiii*#nz+###znzz+***iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*iii**+#nn*******iiiii+iiiiiiii**#*#*iiiiiii********.;+:.
iiiii#iii*++n+********#****+x*+#zz#+**iiiii+##+++####zzz##+*iiii*iiiiiiiiiiiiiiiiiiiiiiiii**++++#zznnMW#*******iii**+iiiiiii***+#*iiiiiii********,.#;`
iiii*#*ii*++z+*********#***Mn***+#zz+++**iiii*##***+++#####zzzzz###++****iiiii****++#####zz##++++*****#M+******iiii*+iiiiiiii**##**iiiiii********;`#i`
iiiii*ziii*+##**********#*xz+***+#++zz#++**iiiii+#+******++++#######zzznnnnnnnnzzzz######+++++*********#z*******iiii**iiiiiiii*+++*iiiiii********i.*i.
iiiiiix*ii*++z+*********+Mn+******+#++zzz+++*iii*i*+##*********+++++##############++++++****************z+******iiiii+iiiiiiiii+*#iiiiiii*********.i+.
iiiiiixziii*+z+********+xzz*********+#*+#zz#++**iiiii*###+***********************************************z******iiiii+*iiiiiiii*+#iiiiiii*********,:#,
iiiiiizx**ii*##*******+xz**#+*********#+**+znz+++**iiiii*+##+********************************************##*****iiiii*+iiiiiiiii+#iiiiiii*********:.#:
iiiiii+xzi***+z+*****+xz****++*********+#***+#zzz#++***iiiii*####+****************************************z******iiiii+iiiiiiiii++*iiiiii*********;.+;
iiiii**xx**i**z+****+Mz*******#**********#*****++zzz#+++**iiiiii*+##zz#+****************+++***************+#*****iiiii+*iiiiiiii+*#*iiiii*********i.#i
iiii***nzniiii*z***#M#*********#+*********##******++#zzzz#++****iiii*i*+################*******************z+****iiiii*+iiiiiiii*+#iiiiii*++*******.+*
iiii***zzn*iiiiz**#M+***********++*********+#***********++#zzz###++*********+++++**************************+#*****iii*i#iiiiiiiii+#iiiiii*+#*******,+#
iii****+nzzii**++zM+**************#+*+++****+z*****************++#########++********************************z+****iii**#i**iiiiii*#*iiiii**M*******:ix
ii******xzn+****xn*i**************+##zz#+*****#*************************************************************+#****iiiii++iiiiiiii*+*iiiii**Mz******;;@
iii*****nzzn*i*zz***************++#zzz##++*****#*************************************************************z****iiii**#iii******++*iiii**MM******;:#
ii******#nzz#*z**#*************++#nzznnz++******#************************************************************+#****ii***#******i***#*iiii**x@+*****i:#
+i*i*****xzzz#ii*#***********+++#z++++**+##*****++************************************************************z****i****#**********#*******x#n******:@
+********zzz+#*ii*#**********++z+******zn#++*****#************************************************************##***i****+**********#***i***z#M******,@
i#*i*****+nz#+#iii#**********+#*****zM@@@@Wx+******************************************************************z*********+*********z*******z@@+*****:@
i*#*iii***nz#*#*ii*#********++****#M@@####@@M+*****************************************************************#+********#*********#*******nW##*****:@
:*++******zz#+*z**i#*******+****#M@@@@#@@@@M*******************************************************************+z********#*********#+******xM#n*****:@
`ii++*****+zz+**#ii*#*****+****nWW@@@@MW@@nn********************************************************************z********#*********++******Mx#M*****;@
 :ii#***i**nz#**++ii#********zW@W@@@WMnMn;xM+*******************************************************************##*******#**********#******Wx#@+****;@
``ii*#*****#z#+**++i*#*****+M@@@@@@MW@nx.:M+********************************************************************+z*******#**********#******@M###****i@
; :ii*z*****n##***#*i*#**+xW@#@@@@M@M#*nMx+**********************************************************************z+******++*****+***z*****+#M##z*****@
z.`ii*+#****###+***#**zzxWM@#@@##W@#.;+Mx+*******++**************************************************************+z******++*****#***z*****z#M@#x****+@
#i :*i*+#****z#+****z+*#zM@##@@M#W:`.M@x********+##**************************************************************+z+******#*****#***#*****n#M@#W****##
+z.`ii**+#***##++****#**W###@M#+x,`,M@x*********+n+***************************************************************#+******#*****#***#*****M#W@#@+***##
+#+ ,*i**+#***z++*****#M#@##M#+i``;M@x+********+#n****************************************************************+#******#*****#***#****+@#WW##+***z#
#+z:`;*i**+z#*##++***+M###@M++*.`iWnz++*******++n+*****************************************************************z+*****#*****z#**#****###WW##+***n#
+++#`.ii***+#z*z#+**#W@@##@#++*;;*xx++++******+#x*********#+*******************************************************#+*****#*****zx**#****n##WW###**+x#
;#+#*`:ii****+zz##nxn+n###M++*iii*z##+++*******zWx*****************************************************************+#*****z*****nW**#****M##WW##z***M#
.#++#:`ii*****+nxzz+**W###n++*ii*####+++********#xM#***************************************************************+n*****#*****x@+*#***+@##W@##n**+W#
`i+++z.,ii**+++*zn#++n@@#@z+*iii#z##+++***********+nn+*************************************************************zW*****#*****M##*#***####W@##n**+@#
 .#++++`;ii*****+nz#zx@@@@n+*+#zzzz#+++**************#z************************************************************x@+****#*****W#n*#***x###M@##x**z##
 `i+++#i.i******+#zxx#@@@@@Wxzzzzz#+++*****************************************************************************WMz****#****+@#M*#**+@###M###x**n##
``.#+++#;,ii*****+nzzx@@@Wn##zzzz#++#+****************************************************************************##xz****#****###W*#**z####M###M**M##
:``i++++#,;ii****++zzWWnz###zzzzz++++*****************************************************************************x#nn****#****z##@+#**W####M###M**@#x
;,``#++++#,ii******xM#zz###zzznz#+++******************************************************************************@#zn+***z****x###+#*######M###M+##MW
.i.`;#++++#:ii***+nzz++#z#zzznz#+++**************************************************z***************************z#@#z#***z***+W##@##*M####@M###x*n@M#
..i.`++++++#i*i*+#+*+z++#nzznzz++#+*************************************************zx***************************W#W###***#***+###W########WW###x*Wx@#
...i.:#+++++#********z#++nnzzz++#*+************************************************#M***************************###M##z***#***z##@W##W#####M@###n#x@##
....i.*++++++z*i******z+z+nnz++#++************************************************zM+***************************x##n##z***#***x##W@+n######M####nzW###
.....i,z++++++z*i*****+n+zzzz+#+************************************************#nn#***************************+@#@z##n+*+#**+M@#M@#@######M####zM####
`.....;*z++++++z+i*****#z##+nz+************************************************zxnz+***************************n##W###n+*+#**z@W#M@M######@W####n#####
:`.....,n#++++++##i*****z##++x#*********************************************+z#*+z#+***************************@##x#z#z+*#+**x#M@W@#######W@##@x@#####
;``......n#++++++#z******z++#+x+*******************************************##*i*z#+***************************n###n#z#z#*#+*+@#WW@#######@@###M@######
.: ``....:z++++++++z****++z#+++x+****************************************++*iii+++*********#x*****************W##@zzzzz#*#+*z##@x#######MMM###########
 ;````...`;z++++++++z#****+z++++x+*************************************++iiii**+*+**********#****************z###Mzzzzz#*#+*M###M######MW@@###########
 `;   `````in++++++++##***++z+++#x*************************************zi*ii***++****************************W###nzzzzzz+#*+@###@W###@M@@#############
` :.    ````*z+++++++++##***#z+++#n***********************************++ii***++++***************************z###@zzzzznn+#*n#####M##@M@###############
: `i`    ````*#++++++++++z+++#z+++#n**********************************z*i#;i+++*****************************W###MzzzzzWn+#+W#####WWMW@################
,` .:       ``*#++++++++++#z++#z+++#z********************************#M##..********************************n####nzzzzn#n#+z######@xx@#################
`.  :.       ``i#+++++++++++zz++z+++z#*******************************Mx+*i***+**++*************************W###@zzzzzW#n#+W#######x@##################
 :  `;       `.,:#++++++++++++zz#z+++z#*****************************##***+*****+**************************n####Mzzzzx##n#z#######@x###################
 ..  ,:`     `..:.++++++++++++++#zz+++z+*****************************************************************+@####nzzzn@##z#M#######M@###################
 `:   ;`      ..,,`i#++++++++++++++##++z+****************************************************************x####WzzzzW##@#z@######@M####################
  ,.  `;`     `..;.`;z++++++++++++++++++n+**************************************************************#@####xzzzM###@zW#######M@####################
  `:   ,:      ...;``:##+++++++++++++++++z+*************************************************************W####@zzzx@###Mn#######WM#####################
   ,.   ;.     `..:: `;*z#++++++++++++++++#+***********************************************************z#####Mzzn@####x@######@x######################
    :   `i`     `..;. `;*+z++++++++++++++++##**********************************************************@#####nzn@#####@#######M@######################
    ,.   .;`     ...i` `;i*##++++++++++++#+++z********************************************************x#####WzzW#############WW#######################
     :    ,,      ..,i```;*i*+#+*+++++++++#+++##*****************************************************+@#####xzM#############WW########################
     .,    ;.     `..,;` `;i*i*+#z+++++++++#++++z#***************************************************M@####@zx@#############@#####@@##################
     `:`   `i`     `..:;` `;iiiii*+#z#++++++#+++++#+************************************************n@@####Mn@####################W###################
      `,    `;`     ...;:  `;iiiiii*i+#zzz###z+++**i*++********************************************#@@@###@x@####################W@###################
       ,`    .;      ...;: ``;iiiiii***+++++++##+++*i,;++******************************************W@@@###@@#####################M####################
       `:     ,:     `...;:` `;iiiii*i**+++++++##++++*,`,i++**************************************n@@@@#########################WW####################
        ,,     :,     `...;;` `;i*iiiii**++++++++#++++*:..`,i++**********************************z@@@@@#########################x#####################
        `:`    `:.     `...:i` `:iiiiiiii*++++++++#+++++;.....,i+#+*****************************+@@@@@@########################@M#####################
         `:`    `;.     `...:*`  ,iiiiiiii*++++++++##++++*,......;;*+#**************************#n@@@@@########################M@#####################
          .,     `;.     `...:i.  .iiiiiii***++++++++#++++*:......;..,iz##+********************+..+@@@@#######################@x######################
           :`     `;.     `...:;,```;iiiiiii**++++++++##++++i,.....;....:ii*+###+*************+.`..#@@@#######################M@######################
           `;`    ``i.     `..,::;```:iiiiiii**++++++++##++++*:.....;,....:i:..,:i**+++******+:.....n@@######################@x####################WWW
            `:      `;.     `..,:.;. `:iiiiiii**+++++++++##++++i,....:,.....,i;.......,;i*+++i.......M@######################M@##################WW@##
             .,      `;.     `..,:`;:``.;i*iiii***+*+++++++##++++;....:;.......;i:.`........,.......+@@###MW################@x################@WM@####
              :.      `;,     `..,:`,;. `:iiiiiii**+++++++++###+++*:...,;........:i;,.......`.....:M@@#####WM###############x@##############@MW#######
               :.`      :: `   `..,;``:;` .;*iiii*i*++++++++++###+++*:...;..........:;i:.........+@@########Wx@############WM#############WMW#########
                :`       ,;`    `...;.``;,``,iiiiii***++++++++++#zz+++i,..;,...........,iii;:.`;M############WM###########@x############@MW###########
                `;`       .i.`    .,.;,``,i. `:i*iiiii*++++++++++++zz+++i:.;:..`...........,:iM@##############Wx@########@x@@#########@MW@#########@Wx
                 `;`       `;,     .,.::```,;.`.;iiiiii**++++++++++++#z#++i::i..............;W#################WM########@@#########@MM@#########Wxnzn
                  `;``      `:;`    `.,;;:i*#n+,`.;ii*iii**+++++++++++++zz#+*;i:..........,z@###################MM################@MM@########@Mnzzznn
                   `;`        .i.`   `.;*z@####@+.`,iiiiii**+++++++++++++++zz#+++:.......*@######################M@##############Wx@########Wxnnzzzznn
                    `:``       `;:`    .i+#W####@x#:`,;iiiii**++++++++++++++++#zz#*,...;x@########################x############@xW#######@Wxzzzzznnnzn
                     `:.         .;.`   .*++x#####WMx*.,;iiii***+++++++++++++++++#zz+*+W@#########################@###########MM@#######Wnnznzzzznnnzx
                       ,,`        :W*`   .*++zW###@@xW@ni,:iiiii**++++++++++++++++++++++++zzzzxxM################@WM########Wx@######@MnnzzzzzzzzzznnW
                        .,`      .M##x:`  ,i*++x@####WxW#Wni::iiii*+++++++++++++++++++++++++++zM###############@MxW#######@xW######@Mnnzzzzzzzzzzzzzx#
                          ..     z@###@z,``;i**+#M####@Mx@##@M#i:;i***+++++++++++++++++++++#nW################WxW########WM@#####@Mnzznzzzzzzzzzzznn@#
                           `.`  ,@######@n:`;iii*+zW####@xx@#####Mz+ii**+++++++++++++++#nM@#################@xM########@xW######WnnznzzzzzzzzzzzzznW##
                             ```*#########@niiiiii*+zW####@Mx@#######@WMnnnnzz#++#znMW@@##################@MM@########MM@#####@xnzznzzzzzzzzzzzznnM###
                               `M###########@Wz*iiii**zW####@MxW#######WM###@WxWWxnnnnxMW@@##############Mx@########@xW######WnzzzzzzzzzzzzzzzzznM@###
                               :@##############@Mz*iiiii#x@####WxM@#@#WM##@WW@W@########@@############@MM@#########MM@@#####@nzzzzzzzzzzzzzzzzznW#####
                               +##################@Mn#*ii**zM@###@MxxMM#@@W@##W@####WWWWWWWWWWMMMWWMMWW@#########@xW#########@nzzzzzzzzzzzzzznnM######
                               n#####################@@Wxnz#+#nW@##WMxMMMW@###M######@@@@@@@@@@@@@@@@###########Wx@###########@nzzzzzzzzzzzzznnW######
                               x###################################xM@@#######M###############################@xW###############MnnnzzzzzzzzznnM######
                               x##################################@x@#########M##############################@x@@################@xnzzzzzzzzznnW######
                              `n################################@#WW##########M#############################Wx@####################@MnzzzzzzznnW######
                             `:x###############################WMxx@##########M############################MM@#######################MnzzzzzznzW######
                           `:x#########@MMMMMMMMMMMMWW@######@MW#Mx###########M##########################@xW###WxW##################@nzzzzzzznn@######
                          .z@####################@@@WWMxxxMW@M@##MW###########M#########################@xW####xznnM@###############Wnzzzzzzznn@######
                        `:W################################WM@###x############M#######################@WM######nzznznxW#############xnzzzzzzzzn#######
                        *@######################################@M############M#######################MM@#####@nnnnnnnznxW@########@nnzzzzzzznx######M
                      `*@#######################################x@############M######################MW#######MnnnnnnnnnnnnnnMW####WnnzzzzzznnM#####Mn
                      .@#######################################@x#############M#####################W@@#######xnnnnnnnnnnnnzzzn####MznzzzzznnnW####Wnz
                      *########################################M@############@W###################@MW########Wnnnnnnnnnnnnnnzzn####xnnzzzzznnn@###Wnzn
                      #########################################x#############W@##################@M@@########MnnnnnnnnnnnnnnnnM####xzzzzzzznnx###@nzzz
                      z#######################################WW#############M##################@M@#########@xnnnnnnnnnnM@nnnnW####nzzzzzzznzW###Mzzzz
                      z#######################################x##############M#################@M@@#########WnnnnM@xnnx@##nnnnW####nzzzzzzznn@##@nnnnn
                      z############################@W@@@####@WM##############M################@M@@W#########xnnxnn@##@####nnnnW####xzzzzzzznM###Mnnnnn
                      z#############################@@WWWMMMWn###############M###############@x@@xW########WnnnMnnx######@nnnnM####Mzzznnnnx@###xnnnnn
                      z###################################@Mxx@#############WW##############@x@#xn@#######@xnnMWnnnW#####WnnnnM####@xnnnnxx@###Wxnnnnn
                      n###############################@MMxM@x@##############M@#############@x@#Mnx########Mnnx@Wnnnn@####Mnnnnx#####@WxxxxW####xxnnnnn
                     ,@###########################WMMMW@###WW#############@@M#############@x@#MnnM#######@xnxW#Wnnnnx@###Mnnxnn#######MMW#####@xxxnnnn
                    `#############################@########x##############@x@############@x@@Wnnx@#######WxxM##@nnxMnx@##xnnWxn@##############@xxxxxnn
                    :@####################################WW#############Wx@############@x@#Wnnnx#######@xxW###@nxM@xnM#@nnx@MxM##############@xxxxxxx
                    n####################################@x############@xW@############@x@@WnnnnW#######WxM@###@xnW#@xnM@xxM#WxxM#############@xxxxxxx
                   :@####################################MW##########@MM@#############@x@#@nnnnx@########MxW###@xn@##@xxWxxW#@xxxM@#####@@@###@xxxxxxx
                   *####################################@M##########Wx@##############@x@@@nnnnnW#########@Mx###@xx####Wxxxx@##@xxxxMWWWMxx@###@xxxxxxx
                   +#@#@#@@#@###########################M@########WxM###############@x@#@xnnnnn@##########@xW##@xM###@@xxxx@###@Mxxxxxxxxx#####Mxxxxxx
                   +#n@n#Mn@x##########################@M#######@xM@###############@x@@@xnnnnnnW###########MM##WxW##@MxxxxM@#####@WMxxMxxM#####Wxxxxxx
                   ##xMnWxnxW##########################x@######Wx@###############@@x@#@xnnnnnnnx@##########@x@#MxWWMxxxxxMM@########@@@MxM######Mxxxxx
                   ##xxxxxxn@################@WW@#####WM#####@xW@################@x@#@xnnnnnnnnnx###########MM@xxMMxxxM@MMxM@#########@xxW######Wxxxxx
                   ##x@zMnxxx##################@WxM@#@x#####Mx@#################@x@##MnnnnnnnnxxxW##########WxMxxxMMW@###@MxM@########Wxx@#######Mxxxx
                   n#M#x@WnWWM####################@MMM@###@xW##################@x@##MznnnnxnxxxxxM##########WxMMMxM@######@MMM########Mxx@########WMMM
                   x#M#W@@x@#M@#####################WM###@x@##################@x@##@xnnnnxxxxxxxxx@#########WM@WMxM@#######WMMW######@xxx@############
                   M#@##@#@##@@@####################x@##@x@##################@x@######@@@@@@MxxxxxW#########WM@##Mx@########WMM@#####Wxxx@############
                   M###############################MW@##x@##################@x@#############WxxxxxM#########WM###WM@########@MMM#####MxxxW############