@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@@@@@@@WMnzn+,:i+nxxxMMWxxMMMMWWWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWxxMWWMx+##+**++###nxnnzxn#+++nMMWWWWWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@WWxxz#nn##+#z#**i++#nzzz#*i...:;i#xMMMMMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wxnzz#+##+i##zzn#nxxxzi:,,:i++#nxxxxxMWWW@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WMnz+#++i#nnxn#nnz++++++**i;*zzz##zxMMWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@WWWWW@WMxziiz##*zznzz##+##+i;+zzn#i::i#z++zzxMMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWMnxn+++nznnxx+i*:*+#+####+*;:,,:;:,:#zz+;:,;*zxz##nxMWWWW@WW@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWMMMn#+*+:::*+:,;+z#++#*;,,:;;;:::::,:#z#i;;i*+nxxzznxMMMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWMxnnz*i*i*,.i##+*#zz#*;::.,;;;;:,.,znz#**+#znxxznxxxMWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWMWWMMMWWMMxnnxnz+;*+i;+#+##zz#+*:.``.,:ii;:,.,zn#*i,:i#nxxxnxMMMWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWMMMMMMxxnnnzz###z#*:,:i+++**++z#zznz+;,```.:i;:ii;:;zz#+;.,:+znMMxxMMMMWWW@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@#@##@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@WWMMMMxxnnz#*iii;:...,,.``.:+*;iii**+#zzzzz+:.```.:::;i*;ixn+*:.`.i#nxMMMMMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@##@@@@@
@@@@@@@@@@@@@@@@@@@@@@WWWWWWW@@WWMMMMxn#+i::::,,.````.,...,:+***i:*+++zzz+i*+i:,` `.,:;;:,;++*i:.`.;+zxMMMMWWWWW@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWMMMxz+i:;;,,,.``  ```.,;*i;i*i:*+++#z###z#*;;iii:.````..:i*#nz#*:.,:*#nxMWWWMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@WWMWWWWWWWWMx#+*i;ii:.``` ``:;i*i***;i;i+###zzzzz##+++;,,,.,.```..:i*#znnn+i;ii+zxxMMWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@
@@@@@@@@@@@@@@@@@@@@@@WWMWWWWWWWWMxz+*i;.` ``.,,:i***i;;::,.;i+nnzznzz#+*i;::,`````  `.,::;+#z#zx#ii#znxxxMWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@WW@@WWWWMxn#+i,``.,::::i****ii;;::,`.:;#nnnzzzz#*;,` `` `  ``  `.::*##zznn#*#nxxxxMMMWWMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWMn+#*,`.,i++i;;i**+#++i:*ii:`.::*znnz###zz#*,``     ``   `.:i+#zznnz++zxxxxxxMMMMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@WW@@WWWMx+*;.`.,i+;;;::i+#zz#*;;+*+:.,ii*znnnz++zzz#*:,.`         `.;*zzznnnnzznxxxMxMMMMMMWW@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWMn#:``,;iii;,:;i#zzzz#+;i+*#i:.i*i#nnnnz++#zz#i,.````  ``` ``.:+##nnnnnnnxxMMxMMMMWWWW@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@W@@@@@WWWMx#;`.:;i:;:.i*#zzzzz##**z++#ii.i#;izxnnz#++##+*;,....`` `````,,;##znnnnnxxxMxMxMMMMWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@
@@@@@@@@@@@@@@@@@@@@@@@@@WWWMx+;.,;i;,;::*++#zzzz#+*;+z+*z#*:;#*;#nxznz*++###*;.``.,,```````::;+#znxxzxxMMMMMMMMWWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@##@#
@@@@@@@@@@@@@@@@@@@@@WWW@@WMn+;,,:;i,;,,*+*+#zzzz+*i;##+*zz*;;++*iznnzz+i*i+++i:`  `,:.`````.::;+zznMxnxMMWMMMWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@
@@@@@@@@@@@@@@@@@@@@W@@@@WMx#;:.,;:.:,:*+i*+#zzz+**i;#+++zz+ii+++:*zzzz#:;ii**i:.`  `.:,.``...::*#nnnxxxMMMMMMWWMWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@###@#
@@@@@@@@@@@@@@@@@@@@@@@@WMxni:..:,`.,:i*;:*##z#++*ii*z**+##+iii**:;+#zz#i,;;;;:,.` ``.:;,.`...:**+znnnxxxMWWWWWWMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@
@@@@@@@@@@@@@@@@@@@@@WWWWxn*;..:,``,,;*i,;*+##+++*ii+#i*+++*i;:ii;;**##+i,.,:;:,,````,:::.``..,*+###nxxMMMWWWWWWMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@@
@@@@@@@@@@@@@@@@@@@@@WWWMz#;:`,,``..,;i,:;i+#++***ii#*ii***i;:,:::,::;++:.`..::::.`  `.:i:,.`.,:+#zz#nxMWWWWWWWWMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@
@@@@@@@@@@@@@@@@@@@@@@WMnz;:`...`..,,:..,:i++****i;i+iii;;;::,.,,,,,,.;*:```.,,,,.`   ``,ii:.,,,:+znzznMWW@@W@WWMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@
@@@@@@@@@@@@@@@@@@@@@WMx#;:.`,.``..,,.`,.,i*ii**i:;**ii::,,,,........``,:````...,.      `.;;,..,.i+zznznMW@@@@WWWMW@@@@@@@@@@@@@@@@@@@@@@@@@####@@##@@
@@@@@@@@@@@@@@@@@@@@@Wx#;,,`.,. ``.,,`,.`;iiii*i;;;;;::,..``.````````` `..`` ..`..`      ``,:,...:#znnxzxWWWWWWWWMW@@@@@@@@@@@@@@@@@@@@@@@@@###@@###@@
@@@@@@@@@@@@@@@@@@@@WM#;,,.`..```..,`...,;;;:i;::,.,,,.````````````` `  ```  ``.`.`        `,:,.`,i#znxxnMMWWWWWWWWW@@W@@@@@@@@@@@@@@@@@@@@@###@@@#@##
@@@@@@@@@@@@@@@@@@@@Wni,..``.. ```.``,..,,:,,:...``..,`` ``````  `       ``   `.,``        `.::..,,znnnMxxMWWWW@@WWW@@@@@@@@@@@@@@@@@@@@@@@@##@@@@#@##
@@@@@@@@@@@@@@@@@@@Wx;,.```..````````......`,.```  ``.`                       ``,`         ```.,..,+xxnxMMMMWWW@@WWW@@@@@@@@@@@@@@@@@@@@@@@###@@@#####
@@@@@@@@@@@@@@@@@@@W*,,`````` ``````....````.```   ````                       ``.` `        ```...::znzzxWMMMWWWW@WWW@@@@@@@@@@@@@@@@@@@@@@####@@#####
@@@@@@@@@@@@@@@@@WWz,.. ````  ``````.````  ``        `                      ```.``           ` ``.,,*z+#nMMxMMxWW@@@W@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@##
@@@@@@@@@@@@@@@@@@M;.,`````  `` ```.````                                    ```.```` ```       ``.:,;+i+nxWWxxxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@#@
@@@@@@@@@@@@@@@@@@n:`:`````  `  ````  `                                    `````.`.`.```      ` `.:;;+*izxMWMnxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@
@@@@@@@@@@@@@@@@@W*,.:````   ```````                                        ````.,...`````      `.:*:+#+#xxMWWxMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@#@@
@@@@@@@@@@@@@@@@@Mi,:,````   ``````                                          ```.,...`````      `.,+*i###zxMWWWMWW@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@###
@@@@@@@@@@@@@@@@@M*:;,.```  ```.`                                            ``.`.,..``````     `.,;+*zz#znxWWWMMW@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###
@@@@@@@@@@@@@@@@@x+;*..`.```....                                             ``.`..,,.`````     ``.:+i####zxWMMWMMW@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@#@###
@@@@@@@@@@@@@@@@@M#i*,``,```,,,`                                             ```.`..,..````    ```.,+*###n#nMWWMMxWW@@@@@@@@@@@@@@@@@@@@@@@@#@@@######
@@@@@@@@@@@@@@@@@M#i*...:``.::,`                                              ``....,,,,..``   ```,,**+zzzznxMWMMxMWW@@@@@@@@@@@@@@@@@#@@@@@#@@@######
@@@@@@@@@@@@@@@@@M#+:``.:``,:;.`                                              ``.,..,::::,``   ```:;ii*znz###i+#nxMWWW@@@@@@@@@@@@@@@@@@@@@@#@@#######
@@@@@@@@@@@@@@@@@W#z:`.:,..:ii.``                                             `..,,,.;,,;;,`   ` `,:*:*#nz+:::...*zMW@@@@@@@@@@@@@@@@@@@@@@@@@@#@###@#
@WWW@@@@@@@@@@@@WW#n:`,i,.:iii.```                                            `...,,.,;;;*;,`   `.;:**i#zn#;.,::;.,zMW@@@@@@@@@@@@@@@@@@@@@##@@#####@#
WWWW@@@@@@@@@@@@WM#z:`:*;:iiii.```                                           ```..,,,.;*i**:,  ``:i;*+*##nzz:,i**::+xW@@@@@@@@@@@@@@@@@@@@@@@@@@####@#
@WW@@@@@@@@@@@@@WM#z,.;++;*iii...`  `                                         ``.,,::,,i+**i;` `.;+;+#++zz#+#,*z*#zznW@@@@@@@@@@@@@@@@@@#####@@@@##@@#
WW@@@@@@@@@@@@@WWMnz,,*#+i+*ii.,,````                                         ``.,,,:,:;++#+i. `,i+;##*+##z++;:xnznnxMW@@@@@@@@@@@@@@@@######@@@###@@#
WWW@@@@@@@@@@@@WWxMz;;+z+*+*ii.:,.```                                          `..:,,:;;i+z#*:``:*+izz++#+#+z#:#xxxxMMW@@@@@@@@@@@@@@@@@@##@##@@###@@@
WWWWWW@@@@@@WWWWWxMni*zz#+#+*i,;;..``                                          `..::,,::;+#z#i.`:*###z+*#*iizz+;xMxxMMMW@@@@@@@@@@@@@@@@@@@###@@#@@@@@
WWWWWWW@@@@@WWWWWxMn##zz##++*i:;i,,..                                           ..:;:,:;i*zzz+,.:++#z#***+:,#z#:zxxnMMMM@@@@@@@@@@@@@@@@@@@@@@@@##@@#@
WWWW@WWWWWWWWWWWMMMxnznnz###**;ii::,.                                           `..:i::*++#zz+:,:++zn#*;*+i`:##:#zxnxMWMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWWWWWWWWWWWWMMxnnnnnz#zz+*i**;;:.                                            `.:*;:i#+#zz#:,:##zn+i;i+i.`:#;izxnnMWMW@@@@@@@@@@@@@@@Wnzx@@@@@@@@@@
WWWWWWWWW@@@WWWWMMxxnnxnzzz#*i*++ii:`                                            `.,;*;;###zz#;:;+#nni;**+i,``**:nnnnxMWM@@@@@@@@@@@@@@M+;;+x@@@@@@@@@
WW@W@WWWWW@@WWWMMxxxxxxnzzzz++*#+**:`                                            `.:;+ii*##z#zi:;+#nn,:i*+ii``i#,#znxnxWM@@@@@@@@@@@@@W*;,.*M@@@@@@@@@
WW@@@WWWWWWWWWMMxxxxxxxnzzzz+#*##+*:`                                     ``     ``,:**ii+#z#z*:;+#nn,;i#+*i, ,z.*zzn#+MWW@@@@@@@@@@@@ni:..+W@@@@@@@@@
WW@WWWWWWWWWWWWMnnxxxxxnnzzz##+##+*:                                       ``    ``.:i#i*++##z*;:+##n;ii++*i, .#,;z#+i;nWW@@@@@@@@@@@@z;.`.n@@@@@@@@@@
WW@WWWWWWWWWWWWxzzxMxxxnzzzz###z##*,         `                              ``   `.,:;*i*+++#zi::*+##;***z+*, `**,z*;;:+MMW@@@@@@@@@@@#,` .n@@@@@@@@@@
@W@@@@@WWWWWWWW+*#MMxxnnzzzzz##zz#*,                                         `````.:;;**;i+++++::;i+*ii*+n#+,  :#,+i:::;xMW@@@@@@@@@@W*` `,x@@@@@@@@@@
@@@@@W@@@@WWWWx,,zMMxxnnnzzz###zz#*.                                           `.,,:;ii+i++++#+;:::;+*+i#z*+,  .+:i+...:zMW@@@@@@@@@@x;` `:M@@@@@@@@@@
@@@@@WWWWWWWWM*.;xMMnxxnnnz#+##zz#i`                                             `,i;;*+**+++##i;;,,i##izn*+.```:i;#,,`.*xW@@@@@@@@@W#,` .iW@@@@@@@@@@
@@@WWWWWWWWWWn;:zMMxznxnnnz####z##i`                                        ```   `,;;i++i#++##;::.,;#zi#z*i` `.,i:z*;..;zW@@@@@@@@W+,`  ,#@@@@@@@@@@@
@@WWWWWWWWWWx*i#xMMnznxnnxnzz+zz#+;`                                  `     ````   `,;i*+;+++##*;,``i#z+zz*, ``,:i,#z*:,;#W@@@@@@@@#,`  `,x@@@@@@@@@@@
WWWWWWWWWWWWzi+znnnnnnnnz+zxxnzz++:                        `          ``    ````   ``:**+i+#+##*;..`i*#***i.`..,:*,+#*.,:+W@@@@@@@n,`   `;W@@@@@@@@@@@
MWWWWWWWWWWM#++nz#znnxnxzzzxMMxn#+,                   ````.:,`         `      `..````,;i*++#+##*;..`i#+i;;:`.:,:;*,*+*.,.*M@@@@@@M,`    .#@@@@@@@@@@@@
WWWWWWWWWWMMz#+z#zxxMWWxMMWWWWWxzz:`              `.,;i***i;;.`        ```     `.,`  `.;*+++##z+;,``,##;;:,,;i,,;+;;i;,.`;M@@@@@@i`     ,x@@@@@@@@@@@@
WWWWWWWMMMMnzznxxxnzMWWMM@WziinMxx#;.            `,*#+#+i*;,..`                       `.;*+###zzi:.``*+:i,,i+*;,i+i:;::.`:x@@@@W+`     `+@@@@@@@@@@@@@
WWWMMMMMMMMnn#nMMxz#MW@WWWz. `+xWxMni.`          `;+i*+*ii;;;:,`                       `:*+###zzi:.``;+:i.i+##i,i++,i::,`,nW@@xi.     `:M@@@@@@@@@@@@@
MMMMMMMMMMMzz#xMMx+#MW@WWM+. .znW+WMx+,          `:;;;;i*;;;:::,.```                   `:*+###z#i:.``.*;;,*#zz*.;++,;,,,``zWW#.`      .+@@@@@@@@@@@@@@
MMMMMMMMMMx+##MMMz*#W@@WMx*` `++MWMi**i`         ```..,,,.,,;i#+i:.````                `:*+#+zz#*:,.``:ii,*#zz*.:+#.:,,,``+n;`        ,M@@@@@@@@@@@@@@
MMMMMMMMMMx++#MMMz*zW@@MxM#:` :+**i:`.;,           ``..,,;#z+i+nMMxz;.,:.`             `:*###zz##:,.``.:*:i+##*,:+z,:,,,..;;``       .+@@@@@@@@@@@@@@@
MMMMMMWWWWx#*#MMMz*nW@@MxMMn+;:ii,,``,,:           ``.,,;*:`  .*x+WWMz;:,.`             ,i###zzz#;..`..:*i;i*#i:,iz,;,;i,:,`        .*W@@@@@@@@@@@@@@@
MMMxnnxWWWM+izMMM#+xW@@xnMMxxxnzi,``.,::`           ``,;*,    `iMnWxnnx+:.`             .i##+zz##i.``.:iii;*++i,.:#,*+++*,``      `,*W@@@@@@@@@@@@@@@@
MMMnnznnMWM+izMMMz+xW@@nznxxnnz+i,.````,`            `,:.`    .:zMx**,*n*,`             .i#z#zz##i,```.;::,::*i.`.+,*;,,:,        ,zW@@@@@@@@@@@@@@@@@
MMxnnxxxxMMi+nMMMz+xW@@z+znnz+;,.````` .`            `;:`.`   `,;i;;,.*z*,`             .;+z#zzz#*:.``.;;,,..;;.``*,:.```,`      ,n@@@@@@##@@@@@@@@@@@
MMxnxxxxxMM+zxMMxz#xW@W+i+#z+i:.`````` .`             .,,,:,,...:,,::+;i:`              `;+###nz#*;,```:*;,..i*`.`,..``  .,    `,z@@@@@@@##@@@@@@@@@@@
MxnnnnnnnnxznxMMxz#xW@W*:i*ii;,.```    .`             `.,:i+###+*++*;:,``               `:+z##zz+*;:,``.;i:.,**`,...``   `.`` `:n@@@@@@@@##@@@@@@@@@@@
MxzznnnznnMxxxMMxz#xW@M*::;:,.```     `,`             ``.,,;iii*;;;:.``                 `,+zz#zz*i;;,.``,;:,;+i`,:`.`   `````.;x@@@@@@@@@##@@@@@@@@@@@
MMxznnznxMMMMxMMMn#xM@Mi,,,,.`        `,`               ```.`..,..``                   `..+#zzzz+i;i:.``:;:;*z*`.i`,    `.`..;M@@@@@@@@@@##@@@@@@@@@@@
MxxxnxMMMMMMMMMMMn#xM@xi,,,.`        `.,`                                               `.*#z##z#;i;;..`.**i+z*`,*..`   `.`.:n@@@@@@@@@@@@@@@@@@@@@@@@
MzznzxxMxMMMMMMMMx+xMWMi,,.``        `,,                                                `.*#z#+##:,,,,,``;+++z*`,*:`    `,`.#M@@@@@@@@@@@@@@@@@@@@@@@@
x##znxMMxxMxMMMMMx+nM@M*:,..`       `.:.                                                `.i#z#+#+,.,.,:,.:*z#z*.:*i`    .,.:MW@@@@@@@@@@@#@@@@@@@@@@@@
xz#nxMxxxxMMMMMMMx#zM@W+:,..`       `,;`                                               ``,;+##+**.`.,.:;:,;+zzi.:+;`    `,,#MWW@@@@@@@@@@@@@@@@@@@@@@@
nz#xxMxxxMMMMWWMMMzzM@W+;,..`       `:;`                                               `..:*##+ii. `,.:*;;,;+#i,;+;`    `,inW@@@@@@@@@@@@@@@@@@@@@@@@@
nnxMxnMxxxMMxMWWMMnzx@W#;,..``      .;:                                               ``,,,;#z+i;:  .,:*+i::*z*:;+;`  ```:+x@@@@@@@@@@@@@@@@@@@@@@@@@@
xxMMMxMMxMxMMMWWMMxnxWWz;,.``       ,;.                                               `.,,,,*##*:;.`,*;i+*;,;+z*;+:`  ```:nM@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMMxxxxMMxMMMWWWMMnxWWxi,```      `,;`                                              ``.:,..:##+++**#ni;*z+;:izz**:   ```;xW@@@@@@@@@@@@@@@@@@@@@@@@@@
MMWWMxxMMMMMMMMWWWMxxW@M*:.``      `::                                                `,:,.``*##nMxnnz#;;*n*;:*zzi,     `*MW@@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWMMxMMMMMMMMWWWWxxMWM#:.``      `:.                                               `.,,.```;+zznxnznz#ii+*i;i+zz,     .#W@@@@@@@@@@@@@@@@@@@@@@@@@@@
WWWWWMMMMMMMMMMWWWWMxMWW#;.``      `,`                                               `.,..```,iznnnnnnnnzi:;i*ii+z*``   .nW@@@@@@@@@@@@@@@@@@@@@@@@@@@
MMMWWMMMMMMMMMMWWWWWxxWWni,.`      `.                                                `...````,ixxnnznxnnnz,,:i*ii+zi`   ,x@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xMW@WMMMMMMMMMMWWWWWMxMWx*:.`      .`                                                `...````,*MMnzznxxxM*;,,;**i*++:  `;M@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WW@@WMMMMMMMMMMMWWWWMxxMx+:.`     `.`                                               ``..````.:#xMxzznxzxz,.:,;**ii***. `iW@@@@@@@@@@@@@@@@@@@@@@@@@@@@
W@@@WMMxxnnnnzz#xWMMWxxMM#i,``    .`                                                ``..````.;zxxxn+znzni``,iiiiii;**:``*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WWWMxnzzz####+**zMMMWMxMMz*,.``  `,`                                                 `.````..innnnnz++zi.``:*+:,,:i;i;.`#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Wxnz##+++++++*+*#xMMWWMxMx+;.``` `,`                                                ``````..,+nnnzzx#i:,` ,*+*;.``:;;;,,z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
xz#+*+**ii+*+**i*nMMM@WMMM#i,``` .,`                 `                              `````...:#znz##x#i,``.i#*,..  `,:;,,x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
zz+*iii;;;*;i;;;;+MMMWWMMMn+:.`` .,`                ``                               ````..,izzz#+#z*:,..;++;```   `,:;;M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+*ii;;::::;::,,..;nxxW@MMWM#i,`` .:`                `                                ` ``..:+z#z+i#+:,..:i*;`       .,:iW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
i;::,:...,,....``,zxn@@WMWWn+;.``.;`              ```                                  ``..;#z##;:+i,..:**:`        `.:iW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
::,,,..```.``````.+nn@@@WWWx#i,.``+;`     ```,,::,.`                                 ` `..,*+#+*,,i:..;i*:`          .,*x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,....```` ````   `*nn@@@WWWWn+;.``;ni.``..:i*i:,.`                                   ```.,;+++i:.:;,.;+i:`           `,*n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
...```      `    `*nx@@@WW@@x#*,`..*xn#++++:`                                         ``.,i+**;.`;:,;+*:`            `:;M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.```             `+nW@@@WW@@Mz+;,.,.:#zz*i:.`                                        ```,;++**:``i,;+*:`             .+;M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
``               .#nW@@WWW@@Wx#+:;*:````  ``                                         ``.:*#***:`.**+*:`              .z*n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               `.;zxW@@MMW@@@Mz+;*z+..`                                              ``,;++iii,`,+#*:`               :nn#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
              `.,*zMW@@MxW@@@@x#*:;*:.``                                            ``.:*#*i;;. :#+:`               `iMW#M@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            ``.;i#nW@@@nn@W@@@Wz;.`,i,``                                           ```,i#+i;;:. ;+:`                .+@@zMW@@@@@@@@@@@@@@@@@@@@@@@@@@@
            .;*i*nM@@@WnM@W@@W@xi.`.#+;.`                    ``                    ``,i+zi;::,``i:``                .+@@zWW@@@@@@@@@@@@@@@@@@@@@@@@@@@
          `,i*;+zx@@@WMxWW@@@MWWn*,.*nn#i,``                `,;,`                 ``.:+##i;:,.`.:..`               `.+@@M@W@@@@@@@@@@@@@@@@@@@@@@@@@@@
      ``.;iii**in@@@@WMM@WW@WxxMMzi,;zzzz#+;,,,::,..```````,:,`````              ```,iz#+;::,``,:.``                .+@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
````.,:;iiii;::zW@@@@WWWWWWWWxnxWM#i;######z####+++*ii****i:`    ``          `  ```,;##+i::;.``;,.`                 `#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
..,,:,::;;:.``*W@@WW@WWWWWW@MnnzMWx#i+#+***i++++++*:*i;**:``                 `  ``.:*z#*;,;:``.;.`                  `#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
`.,::::,..,,:*W@@WW@@WMxxMWWxnzzMWWn+*z#*i;,,,,..``.::;:,``                     `.,i##+;,,:,``::.`                  `+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          `.*M@@W@@@Wxz*+nWWzzznxMWx#**##+ii*,::,,:;ii*,.                      `.,;##*:,..:.`.,,`                   `+W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
           :nWWWW@@@M*.`:zMM#zzxxxxWn*;i+###ziii;ii;:.;;`                    ``..;#z*:,,...``.:.`                   `*W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
`.`       .+xMx+#W@@#```,#xn#znxxnxMx+;:i;iizz#+*i;,.``                     ```.:+z+;..,`,.`.,,`                   `.*W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ``       :#xni.#@WWi,,,inxzzznxxnnnM#;,,,,,:;;::,``                       ```.:*z#;``..,,``,:.`                   .,*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        `.izn*..x@@n,.`,#nnznnxxnnzzxni,......,...```                      ``.:*z#i.``,::.`.;,`                   `.:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        `,+z#.`+@@W:.,,#nnnnxnxnn*+znx+,.``` ````````                     `..:+zz;.``.::,``,:`                    `,ix@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        `inz;`.W@@z..:+nnnnxxnzn+,i+#zz;.``                              `.,;#nz;.```:;:.`.:.`                    .;zW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
``      ,nn*``+@@W:``innxxMMxz##:,;*i;z*.``                            ``.:*nxzi.```.i;:``,,`                    `,*x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
``     `+x#. .M@@#``:znnxMMMn*+;,,;i:.+#,.```                        ``.:izxx+:,``.`:i:.`.,`                     `;#W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
``     ,Mx;``*@@W;.:+nnxMMMx#i;,..::.`:#;,.``                      ``.:i#nMzi,,,`..,+i;..,`                      .*xW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
``` `  +M#` .M@@z.,+nnxMMMxz+i:``.,.```**:.```                   `.,;*#xMx+,,,::,.,+*:;.,.`                     `:#MWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
````  .nx: `*@@W:.i#nxMMMx##+;,```.``  :#i,.``                ``.,;*#nMM#;``,:::;.*zi;;:.`                      `inMMnnMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
````  :x+` .x@Wn;;+znxMMxz#z*:.  ````  `++;..``             ``.:i+zxMMz;```.:;;i;:z+i*i:`                      `,+xWxz#zxM@@@@@@@@@@@@@@@@@@@@@@@@@@@@
```` `ix:`.*MMxz**+zxxxxn#z#;.`   ```   ;n*;,..```        ``.:*#nxMMx*.` ``.:;;;*+z***i.`                 `    `;zMMnnzn#zxW@@@@@@@@@@@@@@@@@@@@@@@@@@
``````;z;*xMWMnz##znxxnnz#z#:``    ``   `zx+;,,.``````````.:+zxMWMx*,`   `.,i*;:##+**+,`                  `   `.*nWni*#nnnzxWW@@@@@@@@@@@@@@@@@@@@@@@@
``````:i;+xWWMnnnxnxnnnzznz+.``          :xMn+i:,,.....,:i+xMWWMni.`    ``,;*i;iz#**+;`                       `:#xW+,::*#nnnxMW@@@@@@@@@@@@@@@@@@@@@@@
.`````..,*W@@n*izxnxnnn#nnzi.`           `*MWWxz+*iiii*#zxMWWMzi.`    ```.:;i;i+n+**+.`                       `izMM+;;i;:;**#nxMW@@@@@@@@@@@@@@@@@@@@@
`````````:W@W:`:nnnnnnznnz+,``            `*xW@WWWMMMMMWWWWMzi.``     ``.,:;i;*nn**#:`                       `.*nMx##+i;:;;i*+zxMW@@@@@@@@@@@@@@@@@@@@
`````````+@@z``#nnnxnznzzz;.``             `:#xWWWW@W@WWWMn*.```      ``.,,;**#nzi+*.                        `,+xMMz+i;:::;i*+#znxW@@@@@@@@@@@@@@@@@@@
..``````.M@W: ;nxnxnzzzzz*:...               `,*zxMMMMMxzi,`         ```..,i*+#z#i*,`                        `;+xM#;:::;;;;ii*+#znxMW@@@@@@@@@@@@@@@@@
...`````*@@z`.nxnnnzzzz#i,...``                 `.,:;:,.`    `        ```.,i*+#z+i;`                        `.i#xxi::::;;;iii***+#nxMW@@@@@@@@@@@@@@@@
....```.x@W:`+nnnz##zzz*.``...``                                      ```.,ii+#z*;.`                        `.izxn;::;;;iii*****++#znMW@@@@@@@@@@@@@@@
...````iW@n.;nnzz#zzzzz,` ``...`                                         `,:;#i#;,`                         `,*zxz:,:;iii****++*+++#znMW@@@@@@@@@@@@@@
.......x@W*:#nzzzznnnn*`   ``..```                                       `.,;#++:.                          `,*nM+:::;;;;i;ii***++++#znxW@@@@@@@@@@@@@
.....`i@@Wizxnnnnnnnnn,    ```..```                                      ``.:#zi,`                         ``:*nxi,:,:;:::::;iii*++++#znMW@@@@@@@@@@@@
....`.x@@+*nnnxnnxxxn*`      ``````                                      ` `:#z;`                          `.:+xn;,,,,,,,,,,:;;ii***++#zxMW@@@@@@@@@@@
,....i@@M;nxxxxxxxxnn,       ```````                                       `;z#,`                          `.:+xz:,........,,::;iii**++#nxMW@@@@@@@@@@
,....z@@##xxxxxxxxxn+`         ````````                                    `iz;`                          ``.;+x+,...........,,,:;i**++#znMW@@@@@@@@@@
,...,W@M+nxxxxxxxxxn:           ````,;``                                    ii.`                           `.;#xi``````````.....,:;i**+#znxMW@@@@@@@@@
,...*@@nnxxxxxnnxxn#`              `.,````                                 `*:`                          ``.,;#n;``` ``   ````..,,:;ii*+#zxMW@@@@@@@@@
,..,x@Wnxxxxxxxxxxni                ``````                               ```:.                           ``.,;zn:`         ```....,:;;i+#znxMW@@@@@@@@
:,.;W@Mxxxxxxxxxxnn,                 `````                               ``..`                           ``.:izz,          ````...,,:;i*+znxMW@@@@@@@@
:,,z@@Mxxxxxxxxxxx#`                  ````                               .,,`                            ``.,iz#.           `````..,:;;i*#zxMMW@@@@@@@
;:;M@Wxxxxxxxxxxxn;`                  `````                              .:.`                            ``.:*n+`           `````..,,:;i*+znMMW@@@@@@@
i;#@@Mxxxxxxxxxxxz,`                                                     ,,`                              `.:*n*`           `````...,,:ii+znxMW@@@@@@@