.....,,......................`.:;;;;;;;;;:``..`.:;;;;;;;;;,`````...```....``````````````          ````````````````````,:..````````````````,,`````
..``...,,..............`....``:;;;;;;;;;;;:````:;;;;;;;;;;;.``````..```...`.```````````          ````````````````````.:,.`````````````````.,.````
............................`,;;;;:;:;;;;;;..`,;;;;;;;:;;;;:```.````..```..``````````` `         ```````````````````.:,.```````````````````.:.```
...........................``:;;;;;;:;;:;;;,``:;;;;;;;;;;;;;.`....````.```.``````````  `       ````````````````````.,,.`````````````````````,:.` 
.........`.................`.;;:;;;;;;;;:,::`.::::;;;;;;;;,,.`....`.````..``````````` `        `.`````````````````.,,.```````````````````````,:.`
..........``...............`....:;;;;;;;;,..``..,:;;;;;;;;,.``.,.....``````````````````       `,,`````````````````,,.`````````````````````` `.,:.
...........```............,..,::::,,,,,,,:;:..::,.........,:;.`..,,:;;;ii;:;;;;i;ii;::,..``   `.,.``````````````.,,..```````````````````    ``.::
..............``........,;:.;:,.,::. `::```...,::;,` ..` .:,...,;i**i*i****++#++#+*iii;i;;::.```,,.`````````````,,..`````````````````     ````.,:
................``.....:ii,...:i*+i. .z#` .,.,:***:``*i` .**.`;*****i*****+zzzzzz#*i;iii;;;;::,..,.````````````.,.`````````````````    `````````,
```................`.,:*+:,,.;+***i.``:;` `.,:,i**:``;, `,*;..i****ii*i***+++zz##+iiiii;;;;;:::,.,,.``````````,:.``````````````    `````````````.
....................,:i+i,;;:.;****;``    `.;;,,i*i.    `;*,:,i***+i*iii**+**z+*+*i;iiii;;;;::::`.,,`````````,:,.````````````     ```````````````
......``............;***,:;;;:.;****;,..``.,,:..,i+i,..:ii,,;;i****;*iiii*+**#*****;;iii;;;;::::``.,.```````.:,.``````````     ``````````````````
.......`...........:**+;,;;;;;:.,;i***i,.,:.:;.,,,;*++**;.,;;;i***+;*iiii*+i*z*i**i;;iii;;;;::::``.,,``````.,,..````````   ``````````````````````
,.................:****,:;;;;;;;:,.,,,,,:;;;ii;;;;,.,,,.,:;;;;i****;*ii*i**i*#*i**i;;ii;;;;;::::.``,:,`````,,,.``````   `````````````````````````
,,,......,..`....:i***;,;;;;;;;;;;;;;;;i;:,,,.,,,,:::::;;;;;;;*****;*****i******ii*;;ii;;;;;::::.``.,:,.``,:,.`````  ````````````````````````````
................,i****,:;;;;;;;;;;;;;;:.,,:;;iiii;;:,,,,:;;;;;*****i+*******++*****;;ii;;;;;::::.```.,,,,,:,.````  ``````````````````````````````
,,...,.........,;****;,;;;;;;;;;;;;:,.:;+###########++i:,,:;;;****ii*******+*+*****;;iii;;;;::::,````,,::::.`````````````````````````````````````
,,,,,,.....,..,,ii***,:;;;;;;;;;;:,,;*##+**ii;;;;ii*+###*;,,:i****i*******++*******i+ii;;;;;;:::,````.,,,:,`` ```````````````````````````````````
,,,,,,.,,,,,,,,,:;i*;,;;;;;;;;;;,,;++i;,.```````````.,;*##+::i****i***************iizi;i;;;;;:::,````.,,,,.``````````````````````````````````````
,,,,,,,,,,,,,,,,,i**,:;;;;;;;;:,:;;,```..............```.:*+;ii***;**************iii#;;;;;;;::::,````.,,,,,.`````````````````````````````````````
,,,,,,,,,,,,,,,,:i*i,:;;;;;;;,,,,.`.....................``.,:;;;*+*############+++*+n*i;;;;::::::````.,,,.,,```````````````````````````````````.`
;:,,,,,,,,,,,,,,i**:,;;;;;;:,...``.........................,*#znMMWWWWWWWWWWWWMMMMMMWMMxnnnz+;:::` `,.,,,:,.`````````````````````````````````````
;;;:,.,,,,,,,,,:**i,:;;;;;:.``.,,,.`````................``*M@@@#######################@@@@@WWx#*;``.:,.,.,,```````````````````````````````.`````.
,:;;;:,,,,,,,,:i*+;,;;;;;;;::,,.,:;ii;:,.......`````....,;M@@@##########################@@@@@WWMM+.:;,.,.,:.`````````````````````````````.`````.,
``,:;;::,,,,,,:***,:;;;;;;;;;;i;:,.,i+###+++++********++#xW@@###########################@@@@@WWMMxi;:,..,,,.`````````````````````````````````.,,,
` `.,:;::,,,,,;*+i,;;;;;;;;;;;;;;;;:.,*##+++###+####++##nW@@#############################@@@@@WWMMz;,.``...,.`````````````````````.``````````,::.
.`````,,:::,,:i**:,;;;;;;;;;;;;;;;;;;:.:++#+++#+++#++++zM@@@##############################@@@@@WWMx*.``````,,.``````````````````````````````.::,`
.,..````.,::,;i**,,;;;;;;;;;;;;;;;;;;;;,,;*++##++++++#+nW@@###############################@@@@@WWMMn,``````.,,``````````````````````````````,:,``
,,.,..````.,:;;ii,:;;;;;;;;;;;;;;;;;;;;;:,,:;**++++*;:*W@@#################################@@@@WWMMx*```````.,.`````````....```````````````.:,.``
.,,,,,.````.,:;*:,;;;;;;;;;;;;;;;;;;;;;;;;;,,...,,,..:xW@@##################################@@@@WWMMn,``````.,,```````...`````````````````.,,.```
..........```.;*,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;inW@@###################################@@@@WWWMx*```````.,,`````````````````````````.,,.````
,,..........`.ii,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+W@@####################################@@@@@WWMMn,``````.,:.```````````````````````.,,.`````
:,.`.........:*;,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;nW@######################################@@@@@WWMM*````.``.,,.``````````````````````.,..`````
:,,..`.......:*:,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iM@@#######################################@@@@WWMM+````````,:,`````````````````````.,,.`````.
,,,,,........:*,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*M@@#@@@@####################################@@WWWM#````````.,:.```````````````````.....``.```
.,,,,,.......:i,:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;zM@@W*;;*ii+#z###znnxxMW@@@@WWWW@W@@@@@@@@#@@@@@WWMz`````````.:,```````````````````.,...````  
,::,,,,,.....:;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#MW@#;+,::,,,:;;;::;;i+#W@@n+*i;i;i;iii;iiiiiii*iii;``````````.:,`````````.```````.,,.``    ``
:,,,,,,,,....::,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#M@@*:z:::;:::;:;;;i;;*nW#Wz+*i:;;;::;;,::,,,,,,....``````````.,:.`.``````.````.`.,,``   ````.
:::,,,,:::,,.,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#W@@*::::::;:::::;ii;i*zW#Mz+*i;;:i:::;,,;,,:,,,,...```````````.:,...`````..````.,,.` ````....
,,,:,,,,,:::,,.,;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;#MW@i::,;:::;;::::;*;i*#W@M#*ii;;:;;::;;,;:,:,:,,..````````````..:,.`...`````` `,,..````......
:,,,,::::,,,,,.:i;;:::,,,.........,,,::;;;;;;;;;;;;#MW@i::::::::i;:;;;iii*zW@M#*i;;;:;:;:::::::,,,,,...`````````...`,:....```    `,:...```.......
:,,,,,,::::,,,.,,,.,,::;;;iiiii;;;::,,...,:;;;;;;;;#MW@i:,:;::::;;;;;;ii**zM@x#*i;;;;;:;;::::,:,:,,.,..``````````..`.,,.``    ``..,,..........```
,,,,,,,,,,:,.`.,:;;iii**************iiii;:,,:;;;;;;+MW@i:,:;;:::;;;;;;i;;+nMWx#**;;;ii::;;::;,::,,,.,,.``````````````.:,` ```...,:,........``````
,,,,,,,,,,,.,;iii**ii********************i;:.:;;;;;+MW@i:,:;:;::;;;;;;i;i*zWMn+i*i;;;i;;;;::;::::;::;;,````````````  `,:.`......,,......```````..
:::,,,,,,,..;i**i************************i,;:.:;;;;+MW@i::::::;;;;;;;iiii*zMMz+iii;;;;;;;;;:::::;;;;;;,`````````     `.,:......,:....```````.....
::::,,,,,,.,i*****ii********************i:;ii,.;;;;+MW@i:::;:::;;;;;;;;ii*zMxz*ii;;;;;;;;::;;;;;;;;;;;,.`````   ````..`.:,...,,:,...`````........
::,,,,:,,:.,i;;:,,,,,:::;i*************i:;**ii,,;;;+MW@i::::::::;;;;;;;ii*#nz++ii;;;;;;;;::;;;;;;;;;;;.`    ```.........,,::,::,.````............
;;:::,,::,.,:,:;;;i;;;;:::;ii*********;:i****i;.:;;+MW@i:::;::::;;;;;;;;i*++****i;;;;;;;;;;;;;;;;;;;;;`  ```............,,::,:,.`.`..............
,:;;::,,::`,,;****i;,,,,,,..:;i******i:;******i,,;;+MWW;:::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:```..............`.,,.,,...................
`..,:;;:::.`.;*****iiii;;:,.`.:i****i:;********;.:;+MWW;:::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i;;i;ii**:.`............`````......................``
.```..:;;;:..i*************i;:.,i***;:i*********:.;+MWW;::,:::;;ii;;i;ii;;i;;;##i###;;;izzi##z;n;#+*i:..........`````````..,,,...........````````
:,..``..,:;,:i****************i,,;ii,;**********i.:+WWW;;#,+;##*z*z;x;#*+**;;;#;+#;:;;;**i*#;#;n*#*i;:......````````````...,.,,.........`````````
:::,,.```.,.:i***************iii;,:::i***********:.+W@W;:#,#i*;+#:#;n*#;##;;;;z+*#+*;;;**;;#;#i###*#*,..````````...........,:,....```````````````
::::::,,.`..;ii************i:,.:i;,.;************i;zMWW;:z+zi*;+##z:###:+#;++;z*++i;i#***i+#;+i#+z*i:,``````................,,....```````````....
:::::::::,,.ii,;*********i:,:;,,ii:,i***********i*z#WWW;:#:#i+;+#;+i#*n:i+;;;;z;##i;;;;i#++++z;#;z*z#:````...................,:..```````...`.````
::::::::::,,i*;,;*******i,,;*+i,:i;,i***********i+*iWWW;:z:#iz++#i+i#;z;i+;;;;##i*++;;;;**i;ii;i;;;;;,........................,,.`````.....``````
,,::::::::.:i**::i*****i,:*ii**i,:;,i************+*iW@W;:i;i;ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,...............```````...,,...`````````````
,,,,::::::.;i**i,;****i,,i**;;i*i,`,i************#++WWW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,............````````````.,,..```````````...
:::,,,,,:,.i****;,i**i:,i;;**;;i**,.;***********i++#MWW;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,.........``````````....`.,,,..````````.....
:::::,,,,,,i****i,;**i.:*i;;**;;i+*;,:i**********+##MWM::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;,.....`````````...````````.,,,...`....`.....
:::::::,,.,i*****::*i:,i;ii;;**;;i**;,:i*********+##MWM:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,;;..`````````........```````..,,,.............
:::::::::.:******;:ii,i*i;ii;;**i;;**i,,i*********#+WWM:::::::::;::;;;;ii;iiiiiii;;;;;;;;::;::::,,,,,.````````.`.....``````````...,,,............
,,,,::::,.;******i,i;.:**;;**;;**i;;*+*,,;********z*MWx;:;::::::::::;z#;i+*#*iii;i;i;*:*;:::::,,,,,.,.```````````````````````.``...,,............
.,,,::,:,.i******i,;:..;**;;*i;;**i;;i**:,;*******#*MWxii+i:i****i+**+iz#x#z#+#+;;+#z+z#i*+*#;:,,,..,.`````````````````....`.......,,,...........
``..,,,,.,i*******:;:::,i**;;ii;;***;;i**;.:ii****z*MWxi**+;i**i**+i*+i#n#znzz##i;;+zix*;#+#+;,:,,,.,..```````````````````..........,,,..........
`````....:i*******;:;;i,,**i;;*i;;***;:i**i,,;i***z*MWx:;::,::;;;;;;;+*#n+zn+++#i:**+*n*;+*##;,,,...,..``````````````...............,:,,.........
``````...:********i,i**;.:**i;i*i;;***i:;***:.;*i*z*MWn;::;::;i::::;;i;++#++#*z#+;+#*#*+:i;i#:,,::;i+,```````........................,:,.........
````````.;*********:,;ii:.i**;;i*i;;***i;;i**;,:iiz*MWni**i*i*+i;+i:;;;;;;i;::::;;:;:i;;::;:;,,,*n#*+,````............................::.........
.```````.i**********;:,,,.,***;;**i;i***i;;i**i,,;#*M@ni**i*i*z###+#+i+i*i#;;i;iiiii;##i;+*;+*+i#n#z#,................................,:,...,,...
+i:.````,i************iiii,:**i;;**i;;***i;;i***:.+#MWn;::;::**n+#nz#zzn#i**+*+++#i+;###z+#+i##,znz*i,.................................,:,...````
zzz#i,.`,*****************;.i**i;i**i;i****;;i***i**xWn,,,,,:ii#+#z*+##+++;*+*+*+#i*;+z##*##+++,+;:.:,..................................::.``````
zzznnz+,;*****************i:,i**;;i*i;;i****i:i***#ixWn,,,:::::::;;ii;+***:iii;;;;;;ii*#*+*ii:,,,...:,..........................````` `.;;,``````
zzzzznz:;******************i,:**i;;**i;;i****i;;i*#+xWn,,,::::::::::;;;;;;;;;;;;;;;;:::::,:,::,,....:,......................```````````.,ii:`````
zzznnn+,i*******************;,i**i:i**i;;*****i;;:i#MWn,,,::::::;;:;;;;;;;;;;;;;;::;:::;:::,,,,,,...:,....................`````````````..;++:...,
zzznzn*,i********************:,***;;i**i;i******:,izMWz,:,::::::::;;i;;;;;;;;;;;;;;;::::::::,,,,,,..,,.................`````````````.,,,,,;++;*+#
zzzzzni:*********************i.;**i;;***i:i****i,;+#MWz,,:::::::::::;iii;;;;;;;;:;;;::::,::,:,,,,...,...............````````````..,:::,,:;;*#+*++
zznzzz;:**********************:,i**i;i***;;i**i,;*+#MWz,,,::::::::::;;;;ii*;;;;;;::;:;;;:::,,,,,,...,...........````````````.,,:::,,:;*+#+*i*z+*#
zzznzz:;**********************i.:***;;****;;*i::***#MW#,,,::::::::::;;;i;;ii**i;;::;:::::;i;;,,,,...:.......````````````..,::::,:;i*+##++++**+#++
zzzzz#:i***********************:,i**i;;***i;i;:****#MW+,,,:::,::::::;;;;;;;;;;i***ii::::::::iii:,..::,..``````````````.....,:;i*+##+++++++++**+#*
zzzzz+:i***********************i,:***i;i***i:,;****#MW+,,,::::::::;;;;;;;;;;;;;;;;i****;:::,:,:;i;i*:````````````.``..,,:;i*+++++++++###+++++**#+
zzzzz*:i***********************i:,i***;;i***;,i*****zW+,:::,::::::::;;;;;;;;;;;;:::;:;***+*ii::,,;*+,```````````.,,:i**++++++++++#########++++**#
zzzzzi:*************************i,:****;;***:;******+zi,,,::::::::::;;;;;;;;;;;;:::::::::;;i**+*i#+i:````.`..,:;i+++++++++++++######+########++*#
zzzzzi:**************************:,i***i;i*i,i******+#i:,,,,::::::::;::;;;;;;;ii;ii;::::::,,::::;z;i;.,,,::i*+++##++++++++++++################+++
zzzzz;;**************************i,:****;;*;,i**********ii;:::::::::::::;;;;;;;;::;iiiiiii;;;::,:z**iiii*+++++++#+######+++++########+++#######+*
zzzzz:;**************************i:,i***i;i::i***************iii;;;;;;;;;;;:::;::::::::::;;;iiii;z*i*++++++++#####++##+++++++########++########++
zzzz#:i***************************i,:****i:,;;i************************+****i;;::::::::,,:,,,,,..i*i*++++########+++###++++#########++##########+
zzzz+,i****************************;.;****;,ii;i****************************+**;::;;::::::,,,,,.`:;i*++++########++##+#+++##########+############
zz##*,i****************************i,,****i:**;;i*******************************i:::::::,:,,,,.`.i;;i++++#########+#+++#++#######################
z##+;,******************************;.;***;:***;;i********************************i:::::::,,,..`;;;;*++#############+++##########################
##++::******************************i:,***;:***i;;;i*******************************i:::,::,,,..,iii**++#############++++#######################++
#+++::*******************************i.:**::*****i;:;*******************************;:;:::,,.`.i*##ii+++############++++#######################++
++++::*********************ii;;;;;;;;;,.i*::******ii;;;ii*************************i;;;:,,,,..`;*i++:*++++###########+#########################++#
++++:;***************ii;::,,,,,,,,,,,,.`:*:;*********i;;:;;ii****************iii;;::;i:,,,...;*iii::*+++++#########++#########################++#
++++,;***********i;;:,,,,::;;;;;;;;;;;;,.i:;***********ii;;::;;;;iiiiiiiii;;;;:::;;i**;,,,..;*ii;;;;+++++####################################++#*
#++*,i********i;:,,,:;;iiiiiii;;;;iiiii;.:::****************i;;;::::::::::::;;ii******;,...;*ii;;;:i+++++#######+##+########################++#+i
#++*,i*****i;:,,::;iiiiiiiiiiiii;iiiiii;:.,,***********************iiiiiii************;..,i*iii;;;;**++###########++######################++*#++*
###*,i***i;,,,:;;iiiiiiiiiiiiiiiiiiiiiii;,`,i*****************************************;`,**iiii;;*n+*+++#######++++#######################+*+#*++
###*,i**i,,:;iiiiiiiiiiiiiiiiiiiii;iii;;;;..i*****************************************;i***iii;*nxz++*++######+++++######################+*+#**++
zzz+,ii:,,;iiiiiiiiiiiiiiiiiiiiiiiiiii;ii;:.:ii*************************************i;i***ii*zxMMM#*+**+#####++++++#####################+*++**+++
zzz+,;,.:;iiiiiiiiiiiiiiiiiiiiiiiiiiiiii;;;.,:;i**********************************i;:;*#znxMWWWWMn+*+#*+#####+++++#####################+*+#+*++++
zzz+,;,,;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;;;,,i;;;i******************************i;::i#W@@@@WWWMMx#+**+**+###++++++####################+*++**+++++
zzz#,;,:;iiiiiiiiiiiiiii;iiiiiiiiiiiiiiii;;:,i*i;:;ii************************ii;:;;*#W@@@@WWWMMn#+##*****++#++++++###################+**#+i*+++++
zz##;,,:iiiiiiiiiiiiiiiiii;iiiiiiiiiiiiiii;:.;***i;:;;ii*****************ii;;;;;i**#M@@@@WWWMMz#####+**#++++++++++###################*+#**+++++++
####+:.:iiiiiiiiiiiiiiiiii;iiiiiiiiiiiiiii;;,:*****ii;;:;;;;iiii*iiiiii;;::;;i****#W@@@WWWMxz########+**#++++++++++#################+*++i*+++++++
##++#*,:iiiiiiiiiiiiiiiiii;;iiiiiiiiiiiiiii;:.;********ii;;;::;;;;;;;;;;iii*****+nW@WWWMxn############+*+#*++++++++################+*****++++++++
#+++#*,;iiiiiiiiiiiiiiiiii;;iiiiiiiiii;i;;;;;.,i************iiiiiiiii********iii#xxnzzz#+++###########+++#+*+++++#################+*++i*+++++++++
#+++#*,;iiiiiiiiiiiiiiiiii;;iiiiiiiiii;i;;;;;:.,;**************************ii;;;ii;;:*+################+++#+*++++###############++*+#+*++++++++++
++++#*,;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;iiii;:..:*********************iiii;;;;iiii;;i+################+++#z+++++###############+++#+*+++++++++++
#+++#*,;iiiiiiiiiiiiiiiiiiiiii;iiiiiiiiiiiiii;;;:.,;****************iii;;;;iiiiiiii;;;+##################++z#*++################++#+*++++++++++++
#+++#*,;iiiiiiiiiiiiiiiiiiiii;;;;iiiiiiiiiiii;;;;;:,.,:i*****iiii;;;;;;;iiiiiiiiiiii;;+##################+*+#*++##############+*+##*++++++++++++#
##+++*,;iiiiiiiiiiiiiiiiiiii;;;;;iiiiiiii;;ii;;;;;;;:;,,,::;;;;;;;;;iiiiiiiiiiiiiiii;;+###################++#*++#############+*+z#*++++++++++++++
##+++*,;iiiiiiiiiiiiiiiiiiii;;;iiiiiiiiii;;iiiiiiii;;i;;;;;;;;;;;;iiiiiiiiiiiiiiiiii;;+####################+#+++#############**##*+++++++++++++++
##+++*,:iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;iiiiiiiiiiiiiiii;;ii;;;;;iiiiiiiiiiiiiiiii;;+#####################+#++###########++*#+**++++++++++++++#
###++*,:iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii;iii;iiiiiiiiiiiii;;;;;;;;;iiiiiiiiiiiiiiii;;+#####################*+#*+##########+#z#i*++++++++++++####
###+++::iiiiiiiiiiiiiiiiiiii;;iiiiiiiiiiiiiiiiiiiiiiiiiiiii;;;;;;;;;;iiiiiiiiiiiiii;;:++####################+*z#+#########+#z#+*+++++++++++++####
###+++;,;iiiiiiiiiiiiiiiiiii;iiii;;;;;iiiiiiii;iiiiiiiiiiii;;;;;;;;;;iiiiiiiiiiiiii;;:++++##################+++z++#######++##**++++++++++++++####
###+++i,;;;iiiiiiiiiiiiiiiiiiiiiii;;;;iiiiiii;;iiiiiiiiiii;;i;;;;;;;;;iiiiiiiiiiii;;:;++++++################++*#++#+i;;*++##+**++++++++++++++####
###++++;:;,;iiiiiiiiiiiiiiiiiiiiiiii;;iiiiii;;;iiiiiiiiiiiiii;;;;i;;i;iiiiiiiiiiii;;::iiii*+++++++##########++*+++i,,,,,i+#+**++++++++++++++#####
###++*+*:,,;iiiiiiiiiiiiiiiiiiiiiiiiiii;iiiiiiiiiiiiiiiiiiii;;;;i;iiiiiiiiiiiiiiii;;:,..,:;iiii***+++++++++*i;,,::.,::,,;#++*+++++++++++++++#####
##++++++*,,;;iiiiiiiiiiiiiiiiiiiiiiiii;;;;iiii;;iiiiiiiiiiii;iiiiiiiiiiiiiiiiiiii;;;,.``.,,,,,,,:::;;;;;::i:,.`````,:...,ii**++++++++++++++####+#
#+++++++*,:;iiiiiiiiiiiiiiiiiii;;;iiii;,;;iiiii;iiiiiiiii;;i;iiiiiiiiiiiiiiiiiii;:;:,.````.````````````.``.````````..`````.,,:;ii*+++++++++####+#
++++++++i,;;;iiiiiiiiiiiiiiiiiiiiiiiii;,:;;;ii;;;;;iiii;;;iiiiiiiiii;iiiiiiiiiii;,,,,.````````     ```````````````````````````..,,:i*++++++######
++++++++:,;iiiiiiiiiiiiiiiiiiiiiiiiii;;,:;;;iii;;;;;;iii;;iiiiiiiiii;iiiiiiiiii;;,.:,`````````      ````  ````````````   ``````````.,:i*+++++####
+++++++*::;iiiiiiiiiiiiiiiiiiiiiiiiiii;,,;;;;i;;;;::;;ii;iiiiiiiiiiiiiiiiiiiii;;;:,,``````````    ````````````````````  `````````````..,;i+++####
+++++#+*,;iiiiiiiiiiiiiiiiiii;iiiiiiii;,,,,,:::,,..,;;ii;iiiiiiiiiiiiiiiiiiiiii;;;,.` `````````   `````````````````````````````````````...:i+####
+++###+i:iiiiiiiiiii;;;;;;i;;;iiiiiiii;,:i:.````...,;;ii;iiiiiiiiiiiiiiiiiiiiiiii;,..             ````    ````    `````````````````````````.,i+##
+++###+;:iiiiii;;:::::::::;;;;;;;iii;;;,:*i.`......,;;iiiiiiiiiii;;iiiiiiiiiiiiiii:..`        `                         `    ```````````````..:*#
+++###+::;i;;:,,..,,,,,.....,,:;;;;iii;,.,.`.``....:;;iiiiii;;;;;;;i;iiiiiiiiiiiii;,.`       ````` `        ``          `       ```````````````.;
######+::;:,.:;ii;*****;;ii;:,..,:;;;;;,,,`.`````..;;;iiii;;i;;;;;;;;;;;i;iiiiiiii;,.`      ``` ```````````````     ```  ``````````` ``   ``````.
######*,:;:,,*++*;*****ii**+*ii;,..:;;;..,```````.,;;iii;;;;;;;;::::,,,,,,,::;;;ii;:.``     `  ```````````````` `   ````````````````````   `````.
######*:;;;::+***;i****;i****ii+*:..,;;.````````..,;iiiii;;:,,,,,,,,,:::::,::::::;;:.``` `  ``````````````````  `````````````````````````````````
######+::;;::+***;i****;i****ii**:,:,:;.````````..:;;;ii;:,.,,:;;:,,,,::,,,,,,:,,:;:.```` ` ``````````````````  `````````````````````````````````
#######*:::.:****;i****;i****ii**:,;;;;..```````..:;;;;:,.,:;ii**i;i****iii;:..,:;;:.```` `` ```````````````````` `````````````````````````````..
###+####+*;,;****;i****;i****ii**;,;;;:.,;:`````..:;;,.:;;iii*****;i****ii**i,:,:;;:.`` `````    ` ``````````````````` ``````````````````````.:+#
#+#########:;****;i****;i****;i**;,::,,:*#*,`````.::,,,****;i*****;i****ii**i,:;:::,.````````     ````````````` ````` `````````````````````.,;+##
*+#########:i***i;i****;i****;i**;.,,;i++++:,.``..:;::,****;i****i;i****i;***::::,```````` `     `````````````` ```` ``````  ````````````.:i+#z#z
i*########+:i***i;*****;i****;i**;,i*+++++*:::,...,:::,****i;*****;i****i;i**:,,,.``  ````            `````` ```````` `  ````````````..:i+##z####
**########*,****i;*****;i****;i**;,*++++++*::;::::,,,.,i***i;*****ii****i;i**:..``` ` ```````   `    ````````````````````````````..:;*+##########
++########*:****i;*****;i****;i**i,i++++++*::;;:;;;;;,,i***i;*****i;****i;i**;.,``    ``````````````````````````````````````..,;ii++##########z##
++########i:****i;*****;i****;i**i,i++++++*,:;::;::;;;:i***i;i****i;****i;i**;,.`` `  ```````````````````....,,..```...,,,:;***##+###############
+#########i:****i;*****;i****;i**i.,:;i**+*,:;:::;::;;:i***i;i****i;****i;i**i,,````` ```````...,,..,,:;:;i;:;:.,.`.;**+++++#+**##+#######z#####+
##########;;****i;*****;i****;i**i.``..,,::,;;:::::::;:i***i;i****i;i****i;**i,,..````.````.,:;;;i****++i+#+*+*:,..:*+++#++++++**z#+##++*iii;::,,
#########+:i****ii****i;*****;i**i.`..`...`.:::::::::::i****;i****i;i****;;***:,:;:,..,...,:iii;:,;#z*#+i#+**++*i;i+++++#++####**#+;::,.,,.,.....
xxxxxxxxxn#znnnnzzznnnz#znnnn#znnz+*****++***+#########znnzz#znnznz#znnzzz#zzz#+#zz##+++++#z##++**+zxnxznnnznnnnnnnnnnnnnnnxxnnz##+++*+##++++++++
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################
#################################################################################################################################################