.....`````````````````````````````````````````````..,;.`````````````````........,,.........,,,,,,,::::::::::,,,,,,,,,:::::::::::::,,,,,,,.....,,,,,:::
...`````````````````````````````````````````````````.:i:````````````````..,,...:*#++*;,.,,,,,,,,,,::::::::::,,,,,,,,,::::::,,,,,,,,,,,,,......,,,,,,::
.````````````````````````````````````````````````````,:i;``````````````:i;,...:*zMnzxMMn*,,,,,,,,,,:::::::::,,,,,,,,,,:::,,,,,,,,,,,,,,.......,,,,,,,:
``````````````````````````````````````````````````````:;ii```````````,;i:....,i+zWxnW@@@Wx;,,,,,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,,,
````````````````````````````       ```````````````````.,;**`````````:i:;,``.,;*+zxMMW@@@@WM*,,,,,,,,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
``````````````````````````           ``````````````````.;*#i```````.:,.....;i*#znnnWW@@@@@@W*,,,,,,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
````````````````````````              ``````````````````,;*z:``````,,.,:,....:i#zxMWWWW@@@@WM;,,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
`````````````````                      `````````````````.:i*n,````.,,:,`   `.:*#zxWW@@@WMW@@Wx,,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
`````````````                           `````````````````:i*#n````,:.``   ``,;*#zxWW@@@@W@@@@@*,,,,::::::,,,,::,,,,,,,,,,,,,,,,,,,::::,,,,,,,,,:,,,,,,
```````````                              ````````````````:ii*n#```:.``    `.,;*#zxMW@@@@@@W@@@z,,:::::::,,,,,:,,,,,,,,,,,,,,,,,,,:::::::::::::::::,,,,
`````````     ```                         ````````````````.*+#M:``````   `,:;i+#nxMW@@@@WW@@@@x::::::::,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::,,,
````````       ``                        ``````````````````,*+n#``````  `,:nnnnxnnMW@@@WWW@@@@M::::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::,,
```````                                  ```````````````````,+#M;`````...::xxnxxzxMMW@@@W@@@@@W;:::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::,,
.`````                                   ````````````````````:#xM.`````  ,;n*#xMM@@@@@@@W@@@@@Wi:::::::,,,,,,,,,,,,,::,,,,,,,,,::::::::::::::;:::::::,
.````    ```         ``                 ``````````````````````;zM.```   .,;zznxMWW@@@@@@@@@@@@W*:::::::,,,,,,,,,,,,,::,,,,,,,,,:::::::::::::;;:::::::,
.```   `````        `````             `````````````````````````*#````   `.;znxxMWWWW@@@@@@@@@@@z::::::,,,,,,,,,,,,,:::,,,,,,,,,:::::::::::::::::::::::
```   `````       ```````           ```````````````````````````.``````  `.iznnxMW@@@@@@@@@@@@@@n:::::::,,,,,,,,,,,,,:,,,,,,,,,,::::::::::::::;::::::::
``````````        ``````````` ``````````````````````````````````.```` `;#xnMMMWW@@@@@WWW@@@@@@@n:::::::,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;:::::::::
`````````        ``````````````````````````````````````````````...``:#MWWMi+##zxMW@@@@WMxxW@@@@n::::::,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;::::::::
````````          ````````````````````` ``````````````````````.,..;nWWn*;:#xnnxxznMMW@@@@WMW@@@n::::::,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;::::::::
``.````           ````````````````````` ```````````````````````,,#WW#,`:+n+n*xM@WWWWWWMMW@@MW@@x::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;::::::::
...```            `````````````````````````````````````````````,nW+.`;z#+ninnxM@@@@@@@@MnnMMW@@M::::::,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;::::::::
...``            `````````````````````````````````````````````.;#,.;+i..:z;xnxM@@@@@@@@@@WMnW@@M:::::,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;::::::::
..```        `` ``````````````````````````````````````````````.,.;*:``...zinzxM@WWWW@WnxW@@@@@@x::::,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;::::::::
````        `` ````````````````````````````````````````````````;*:``````,#in*nM@WWWWWWxnMWWW@@@x::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;:::::::::
```       ``````````````````` `````````````````````````````````i,`   ``.:#*nnnM@WWW@@WxnxWW@@@@x:,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;;:::::::::
``       ``````````````````   ````````````.........`````````` `:``  ``..;z+xnnM@WWW@@WxnxW@@@@@x,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;::::::::::
`       ```````````````````  ``````````....................````.`  ``.,,i+#nnnM@@WW@@Wxznx@@@@@@;,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;;::::::::::
       ```````````````````` `````````.......................`````  `.,,:**zn#xM@W@@@@Wxzzx@@@@@@#,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::
      ````````````..````````````````........................````` ``.,::+*zz#xM@W@@@@@MnzM@@@WWWx,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::
     ``.`````````....```````````````........................````` `..:;i#innnxM@WW@@@@WxzM@@WWWWM,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::
    `..``````````.....`````````````..........................``````.,:i*ninn#nM@WW@@@WWx#nWWWWWWM:,,,,,.,,,,,,,,,,,:::::::;;:::::::::::;;;::::::::::::
   ``.``````````......````````````..........,,,,,,,,,.........`````,,;i*n*nnznxWMW@@WWWx+#MWWMMWM,,,,.....,,,,,,,,::::::;;;;;;::::::::;;;;;:::::::::::
  ``..``````` ``......````````````..........,,,,,,,,,,,,,,,,;,````.,:i*+n*nnnzMWWW@@@@WM#zMWWWWWM,,,.......,,,,,,,:::::;;;;;;;;;:::;;;;;;;;:::::::::::
```..``````` ``.......```..``````..........,,,,,,,,,,,,,,,,,;.````.::i*#x+n*+nM@W@@@@@WMnxMWWWWWx,,......,,,,,,,,:::::;;;;;;;;;;;;;;;;;;;;;;::::::::::
``..```.```  ``...,..```..``````..........,,,,,,,,,,,,,,,,,,,`````.::*+#xin#nnM@W@@@@@WMxnxWWWW@n,......,,,,,,,,,::::;;;;;;;;;;;;;;;;;;;;;;;::::::::::
`..```..``  ``..,,,..``...````............,,,,,,,,,,,,,,,,,,.`````,:;*+#xinnnnW@@@@@@@WMMxMW@@@@#,......,,,,,,,,::::;;;;;;;;;;;;;;;;;;;;;;;;::::::::::
..```..``` ``..,,,,.......```...........,,,,,,,,,,,,,,,,,,,,``````,:;++#xixnnxW@@@@@@@WWMM@@@@@@+,,,....,,,,,,,:::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::
.```...`````..,,,,,...,,.............,,,,,,,,,,,,,,,,,,:::,,```.``:;;+#zx+xxxMW@@@@@@WWWW@@@@@@@*,,,,,,,,,,,,,::::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::
.``...``````.,,::,....,,....,,,,,,,,,,,,,,,,,,,,,,,,,,:::::.```...:*+#nxxnxMWWW@WWWWWxMW@@@@@@@@i,,,,,,,,,,:::::::::;;;;;;;;;;;;;;;;;iiiiii;;;;;::::;;
......`````.,,:::,...,,,,.,,,,,,,,,,,,,::::,:::::::::::::::.```.,:*#znnzzMWWxWW@MWWWWMMW@@@@@@@W+;:,,,,,,,:::::::::;;;;;;;iiii;;;;;iiiiiiiiiiii;;;;;;;
..,,.`````.,,,:::...,,,,,,,:::::::::::::::::::::::::::::::,.`.,;**+*;i*iMWWWnWWxMWWWWWMW@@@WWWWWWMx#i:,,::::::::;;;;;;;iiiiiiiiiiiiiiiiiiiiiiiii;;;;;;
.,,.`````..,,:::,..,,:,,,:::::::::::::::::::::::::::::::::,..:ii,,+*zMn#W@WWxWxnnWWWWWWWWxzzz##nnxxxnz;::::::;;;;;;iiiiiiiiiiiiiiiiii*******iiiiii;;;;
,,.``````.,,:::,...,,,,,::::::::::::::::::::::::;;::::::::,,::,.,*zMWWxxWWWWxWMWMWWWWWxz*i*+#zznznnxxMx;:::;;;;;iiiiiiiiiiiiiiiiii***********iiiii;;;;
,.``````.,,,:::,..,,,,,,:::::::::::::::::;;;;;;;;;;;;;;;::,,..,:+nnMMMMMWWWWxWWWWMWWWMxxxMMMMMMMMWWWWW@n;;;ii*****iiiiiiiiiiii**************iiii;;;;;:
,.`` ``..,,:::,..,,,,,,,:,,,,,,:::::::::::;;;;;;;;;;;;;;:.``.*zxMxxMMMMWWWWWMW@@@WMxMW@@@@@@@@@@WWW@@@Wx+#znnzzznnnnnzz##++*********++++***iii;;;;;;::
.`` ```.,,,::,..,,,,,,,::,,,,,,::::::::::;;;;;;;;;;;ii;;,``.ixWWWxMWWWxW@@@@@@##M++#nMW@@@@@@@@WWWW@WMxxxxMMMMMMMMMMMMMMMMMMMxxxxxxnnz#+***ii;;;;;;:::
``````.,,,::,,.,,:,,,:::::::::::::::::;;;;;;;;;;;iiiii;:``.*xMWWWW@@@@@@######Wz**zxMW@@@@@@@@@WWWW@MMWMMMMMMMMMWWWWWWWWWWWWWWMMMMMMxxxxx+*ii;;;;;;:::
`````.,,::::,.,,::,,:::;;::::::::;;;;;;;;;;;iiiiiiiiii;:`:#MWW@@@###########@xnnxMWW@@@@@@@@@@@@WWWWMMMxnnzzzznxxMMMMWWWWWWWWWWWWMMMMMMMMMxz*i;;;;;;::
````.,,::;;:,,,::::::;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiii;:*MW@@#############@MMMWWWW@@@@@@@@@@@@Wxz#++znnxxxnz##znnxxMMWWWWWWWWWWWWWWWMMMMMMMxn+i;;;;;;;
```.,,::;;:,,,:::::;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;#M@@############@MxxMMWWW@@@@@@@@@@@Wxzi:,:i+####zzznxnzznnxMMWWWWWWWWWWWWWWWWWWWWWMMWM*ii;;;;;
```,,::;;;,,,:;:::;;iiiiiiiiiiiiiiiiiiii**********iiii;nW@#########@Mz*;i+#nMMW@@@@@@@@@Wxz*:.,,:;i*******+#znnnxxMMMMMWWWWWWWWWWWWWWWWWWWWWW#*iiiiii;
``.,::;;;:,,::::::;iiiiiiiiiiii**************ii****ii;*xM@WMMMxz#*i;:,,:*#znxMW@@@@@@Wxzi,.,,,,:::;iiiiiiii**+#zxxMMMMMMWWWWWWWWMMWW@@WWWW@@W+**i*iiii
`.,:::;;:,.,:;:::;;iiiiiiiii**************i;;;ii**i;:,,::;::,,,::i+#zznnxMWWWW@@@@WMz*;..,,,::::::;;iiiiii***+#znxxxxMMMMWWW@WWWWWWWW@@@WWWWWx*******i
.,::::::,.,,:::::;;;iiiiii*************i;;;;i**+++;.``...,:::,:;+nMWWWWWW@@@@@@@Wx#;...,,::::::,::;;iiiii*++##zznnxMMMMWWWMW@@@WWWWWWW@@@WWWWx********
,:::::::,,:::,::;;;;;iii************i;;;;ii****+zz,`.,;i+#nMxnzznxMMMWWWWWW@@WMx+;..,,,:::::,,,,,:;iiii**+#zznnnxxMMMMMMWWWMMWW@@@WWW@@@@@Wnz+*iii*+**
::::::;iiiii;::;iiiiiii***********i::;i*#z####zzn#,.:+zxMMWW@WWWWWWWMMW@@@WWMzi,,,,,::::::,,...,,:;iiii*+#znnxxxxMMMMMMMWWWMMMWWWWWWW@@@@@@x*i;;;;i*+*
:::;;i*++++*iii*++******+++*****i::;i**+###zxn*;:**i#nxxxxMWW@@@@@@@WWW@@WMni,,,,,,:::::,,....,::;;iiii*+#znxxMMMMMMMMMWWWWWMMWMWWWW@@@@@@@@M*;;ii*+++
::;i*++++++*ii**++++++++**i;:,::;i***+##znn#:.`.,i+#nxMxxnnxWW@@@@@@@@@WMx+;,,..,,::::,,,:;:,,::;iiiii*+#zznxMMMMMMMMMWWWWWWWWWWWWWW@@@@@@@@@Wz***++++
:;i*++++++*ii*++#+*;:,:::::::;ii***+#zznn+,``...,:*#nxMMxxMMWW@@@@@@@Wxn#i:,,..,,,,,,,,.,*n*;:;ii*****+##zznxxMMWMMMWWWW@@W@@@@@@WWW@@@@@@@@@@W#++#+++
;i*+++++++*i*++#+,.,:iiii;;;i*****#zznn+,````.....,;*zxxMMMMWWWWWWWWxz#*;,,,,,,,,,,,,,..:zM#*ii**+++++###znnnxMMWWWWWWWW@@@@@@@@@WWW@W@@@@@@@@Wz+####+
i*++++###+***+##;;i*++*i;;ii*++*#zznxn:``````.....,;;i*#zzzzzzzznnnz#*;:,,,,,,,,,,,,,,,:+xx#+***++#####zzznnxxMMWWWWWWWW@@@@@@@@@@@@@W@@@@@@@@@n#####+
*++++###++**+###+++##***i*i*+++znnnx#,```````.....,:::::::;;ii*++**+:,,,,,,,,,:,,,::::izxxx+***+++##zzzznnnxxxMMWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@z###++
*++*i*+#+++++++++*iiii*++++###znnxni.```````...,....,,,,,,,,,:*i;;ii,,,,,..,,:::::;*znnnxM#+*++++###znnnnxxxMMMMWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@n##++
++*********++****;;;;i*++##z#nnxxn:..``````..,::.............:;;;;;*;,.....,,::::;+nnnxxMn#++###zzzznnnxxxxMMMMMWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@Wz+++
++++++*********i;;;;;i+++#zznxxMn:.,,....``..;::,............,;;;;;;*i...,,,,:::;*nnnxxMM#++#zzznnnnnxxxxxMMMMWWWWWWWWW@@@@@@@@@@@@@@@@@@xM@@@@@@@n+++
**+++*********i:;i*i*++++#nxxMMx:,:;:,,...`..;:::.............,;;;;;;*,,,,,:::;;iznnxxMMM#+#zznnnnxxxxxxMMMMWWWWWWWWWW@@@@@@@@@@@@@@@@@@@M#x@@@@@@@n+*
*****iiiiii**i;*#z###+++#nMMMMMWxiii;::,.``.,i::::.............;;;;;;*,,,::;i#znnnnxxMMWM##znnnnxxxxMMMMMMMWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@W+#@@@@@@@@n*
****ii;;:;;;i+##z#z#++##xMMMMxMW@M+***;,.```.i;::;ii:.........;i;;;;;*:,:;;+nnznnnnxxMWMnzznnnxxxxMMMWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@**n@@@@@@@W#
****i;:::;;;+*;;i+#####nMMMxxMW@@@###+;,.```.:i;:;;;i;........i;;;;;i*::;;+n#zznnxxxMMxnzznnxxxMMMWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@+i*W@WWn+**+
***ii;:;i*i;::::iznzzznMMMxxxMW@@@xz#i,.``....,i;:;;;i........i;;ii*i*+ii#z#znnnxxxxMnnnznnxxMMMWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@ziixW**ii;:;
***iiii*++*;,:;;+nnzznxMMxxxxM@@@#Mn*:,........i;::::;ii;,...,ii;iii**+#zz##znxxxxxxMnzzznnxxMWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@WWWWn**#W***ii;i
*******###*;:;;*nnz#nxMMxxxnxW@@@#x#i,.........i;;::::;;;i,.:**iiii****++##znxxxxxMWxzzzznnxMMWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@WWWWM+++n**iiiii
***++++###+**iinxz#nxxMMxxnxMW@@@@n+;,.........:*i;;::;;;;*;*iiiii****++###znxxxxMMnzzzznnxxMMWWWWWWWWWWWWWWWWWMWWWW@@@@@@@@@@@@@@@@@@WWWWM##+++*iiiii
****++++#####+#nzznxxxxxxnnxWW@@@Wz*:,,,,,,,....,;;*;;;;iii*iiii;:,,,:;;i+#znxxxxMnzzznnxxxxMMWWWWWWWWWWWWWWWMMMWWWW@@@@@@@@@@@@@@@WWWWWWWW##+++**iiii
***++++++++###nnnnnxxxxxxxxMWW@@@Mz*;::::::,,,,....ii;;;iiiiii;,,,,,,:;;ii*#nxxxMxnznnnxxxxMMWWWWWWWWWWWWMMMMMMMMWW@@@@@@@@@@@@W@@@@WWWWWWW#++**iiii**
**+++++++++#znnnnnxxxxxxxxMWWW@@@Mz+*i;;;;:::,,,,,,;+iiiii*ii:...,,,,:;;;ii+znxxMnnnnnxxxMMMMWWWWWWWWWWWWMMMMMMMMWW@@@@@@@@@@@@@@@@@@WWWWWWz*i;::::;**
+++###++###znxxnxxxxxxxxxWWWWW@@@Wnz+*iii;;;:::,,,,,*+++**ii,....,,,::;;;;i*+znxnnnnnxxxMMMMWWWWWWWWWWWWWMMMMMMMMMW@@@@@@@@@@@@@@@@@@WW@WWWx;:,,,::;*+
###zzz###zzznnnxMxxxxxxMMWWWWW@@@Wxn#+*iiii;;;::::,,,,,:#ii,.....,,,:::;;;ii*#nxxnnxMMMMMMMMWWWWWWWWWWWWWWWMMMMMMMW@WW@@@@@@@@@@@@@@@@@@W@@W;;::;;;;*#
z#++###+##zz#zxxxnxxxxxMWWWWW@@@@@Mxn#+****ii;;:::,,,,,;*i;....:::::,::i*****+nxMxMMMMMWWMMMWWWWWWWWWWWWWWWWMMMMMM@@WM@@@@@@@@@@@@@@@@@WW@@W*iii;i**+#
#+++##+###zzznzz#+zzzzzxWWWWW@@@@@MMxz##+++*i;;::,,,,,,*ii,.....,:::::;i*****#zxxMMMMMMMWWWWW@@WWWWWWWWWWWWWWMMMMW@WWW@@@@@@@@@@@@@@@@@@@@@W+***ii*+##
###zzz####zzzzz#++####znMWWWWW@@@@WMMxnz###+*i;;+#*;:;**i;,.::::;::::;;*i++++zzxxxMMMMMMWWWWWW@@@WWWWWWWWWWWWMMxMW@W@W@@@@@@@@@@@@@@@@@@@@@W*i;ii*+#zz
##z#############+++#+#z#xWWWW@@@@@@MMMxnnzz#+*izz####+ii;i...,i;,,,::;i*i*++*+#nxxMMMMMWWWWWWWW@@@@WWWWWWWMMMMMxM@@@@WW@@@@@@@@@@@@@@@@@@@@M*;;;i+#zzz
####+++++++++++++++**+##xWWW@@@@@@@WxMxxxnzz#++n#++**iii;i.....,,,::::i;iiii**#nxxxMMMMWWWWWWWW@@@@@@@@@WWWMMMxM@@WW@@@@@@@@@@@@@@@@@@@@@@@n*i;i+#zzzz
##++*iii*******ii*iii*+znMW@@@@@@@@@xxxxxxnxxnnn##+**ii;;;,.....,,,::;*iiiiii*znnxxMMMMWWWWWWWW@@@@@@@@@@@WWMMMW@@@@@WWW@@@@@@@@@@@@@@W@@@@x*i;i#zzzzz
+++ii:::;iiii;;;;iiiii*+*n@@@@@@@@@@MnxxxxWWWMxnzz#****i:;:,....,,,;*+i;;;;ii*zznxxMMMMMWWWWW@@@@@@@@@@@@@@WMMMM@@W@@@@@@@@@@@@@@@@@@WW@W@@@+ii+znnzzz
++*i;,,,:;;;::;ii;;iiii;;#WW@@@@WW@@@nnnnxWWWMMxn+z#++:;i:;:,...,,,::;iii;;ii+zzxxMMWMnxxMMMMMW@@@@@@@@@@@@WMMnx@@@@@@@@@@@@@@@@@@@W@@W@@@@@M++znnnzz#
+*ii;:;:;;;;:;ii;:;iii;;i*WWWW@@MM@@@Mnz#n@WWWMn*i;;;,,,i;:;,,..,,;::;;;;;ii*zznnnxxnzznnxxxMMWWW@@@WWWWWW@@Mxzx@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wzznzzz##
***ii;;;;;;;;i*i;::;iii;;*WWWWW@WW@@@@xz+#@Wxxx+*;::,,,i*;;;;,,,,,,:;+i;;ii+z#nz++++#zznnnxxMMMWWWWWWWWWWWWMMxnW@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@Wnzzz##+
**+***iiiiiii**i;:;iiiiii*WWWWW@W@@@@@@n+#@Wnnz+i;::::+*i;;;;;;:,,:::;;;i*####n+***+##zznnxxMMMWWWWWWWWWWWWMMMM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mzz##++
**+++++*****+++*i;;iii****WWMWWW@W@@@@@Wzx@Mnz#i;;:::i+iii;;;;;ii;;;;;i*+#+#zzx+***+##zznnnxMMMWWWWWWWWWWWWWMMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@n##+++
*+++###++++++++**ii*******WWMWWWW@@@@@@@Mnnznz*;;;;:;#*iiiiiiii;ii**++++###zzznx#+++#zzznnnxxMMWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M##++*
++############++***++****+MWMWWWW@@@@@@@@Mnzz+;;;;;*z+*ii*i,,,;*i*****+#*+z#znznxxz##zzznnnxxMMWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z+++*
##############+++**++++++#MWWW@W@W@@@####@xzzi;ii#zz+****+,,,,:*ii*++++#;*nzzzznnxxxzzznnnnxxMMWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x++**
#######++++++++++**+++++#zMMMMWW@@@@@@####Mn+;;i#n#++++#+:,,,,;*i*+++++z;izxnznnxxxMnznnnnnxxMMWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W++**
#######+*++++++++***+++##nWWMWWW@@@@@@#####ni;i*n###z#+i:,,,,,i****+++#z;i*#nnnxxxMMxnnnnnnxxMMWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x+*ii
####+++*************++###nWWWWWWW@@@@@#####xiiizz#z#+*i;:::::,i+**+#++z#iii+zxxxxxMMxxnxxnnxMMWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W+*i;;
##++****iii**i********+++MWWMWWW@@@@@@#####xi*+xzn+++*i;;::::::+++++#zn*iii*#xMMMMMMMWMMxxxxMMWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@z;;:,:
+++****i;;ii**********++#WWWxxWWW@@@@@#####z*+xnx++###*i;;;::::;#+##nz+iii**+zMMMMMMWWWMMMxMMMWWWWWWWWWWWWWWWWWMMM@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@i::,.,
****iiiiii******++++++++nWWMMWxMMW@@@@####@+zxnxz+#zzz#*ii;;;;:i###zn#*i*****+znxxMWWW@@MMMMMMWWWWWWWWWWWWWWWWMMxxM@@@@@@@@@@@@@@@@@@@@@@@@@WW@Wiii:,:
**iiiiii***+++++#####+++MWWMMWWWMW@@@@####Wxnnxn##nxnnz++**iiiizzznnx#iii***++##znxWW@@@WWMMMMWWWWWWWWWWWWWWWMMxnzxW@@@@@@@@@@@@@@@@@@@@@@WMnM@W+++*;*
*****ii****+++########+#WWWMMW@@@@@@@@####MxMxxzzzxxxxnz###++*znnxxxx+**i**+###znxxW@@@@WWWWWWWWWWWWWWWWWWWWWMMn##nM@@@@@@@@@@@@@@@@@@@@@@@WMW@@zzz###
**********+++#########+zWWWWMW@@@@@@@@####MMnzzzznMxxxxnnnzzz#xxxxxxx#+***+##zznxxMW@@@@@WWWWWWWWWWWWWWWWWWWWWMn##nM@@@@@@@@@@@@@@@@@@@@@@@@WW@@zzzz##
*********+++#########+zWWWW@WW@@@@@@@####@xnnnnnxMMMMMxxxxxnnzxMMMMMn#######zznxxMWW@@@@@WWWWWWWWWWWWWWWWWWWWWWMnnxM@@@@@@@@@@@@@@@@@@@@@@@@@@@@z+####
+++***++++###########nWMMMW@@@@@@@W@#####WxnnxxxMMWMMMMMMMMxxnxMMMWxz####zzzznxxMMWW@@@@@@@@@WWWWWWWWWWWWWWWWWWWMMMMW@@@@@@@@@@@@@@@@@@@@@@@@@@@#i+#**
##++*++#++#####++##zMWMMWWWW@@@@@@@@####@xnxxxMMMWWWMMMMWWWMxxWWWWWnnzzzzzznnxxMMWW@@@@#@@@@@@@@WWWWWWWWWWW@WWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@x+#+i;
##+++*+++++########MMMWWWW@WW@@@@@@@@###WxnxMMMWWWWWMMMWWWWWMMWWWWWxxxnnnnnxxxMMWW@@@@@@@@@@@@@@@WWWWWWWWWW@@@@WWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@W##+ii
#+**i*+#z########zxWMWWW@@@WWW@@@@@W@##@MxxxMWWWWWWWWWWWWWWWWW@@@@WMxxxxxxxxMMWWW@@@WWW@@@@@@@@@@@@@WWWWWW@@@@@@@WWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@n##++
#+ii*+########++#xWWMWW@@@WW@W@@@@@@@#@@xxxMWWWWWWWWWWWWWWWWWW@@@@WMMMMMMMMMWWWW@@@@WWW@@@@@@@@@@@@@@@WWW@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x####
#+**+++++++++++++M@WW@W@@@@@@@@@@@@@@#@WMMxMWWWWWWWWWWWWWWWWWW@@@@WWWWWWMMMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M##zz
#*++###+++++++**+W@@@@@@@@@@@@@@@##@#@@MMMMMWWWWWWWWWWWWWWWWW@@@@WWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M#zzz
+#########++++++#W@@@@@@@@@@@@@@@@@@@@@MMMMMWWWWWWWWWWWWWWWWW@@@@WWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@M####