#+++**iiiiiiiiiii**ii*+##+##*;::::::,,::;;;;;;;;;;;;;::;;;;;:;;ii;;;;;;i;ii**i:,.,::::;::::,;#xxn#*;:,::;:;ii;:,,:i+nW@x*:::;::::;:::::::;#xWMMM#*++++
###+++***iiiiiiii**ii**++++#*;:::::,,,,::;;;;;i;;;;;;;;;;;::;;iii;;;;;;;;ii**i:,,,::::;:::::izxnz+;,,::;;:;;;;::::;*zM@M#;::;::::;:::::::;#MMMMx#*++++
++###+++++++***+++*ii**ii*++*;:::::,...,,::;;;;;;;;;;;;;;;::;iiiii;;;;;;;ii**i:,,,:::::::::i#xxz+;,`.::;:::;;::::;:;*zMWn*::::::;::::::::izMMMMx+*++++
***++++++######znz#+++*ii*++i::::::,........,::::::;;;;;;;;;iiii*iii;;;;;;ii*;:,,,:::::::::+xxn+;,` .,:::,:;::::;:::;*nWW#;::::::::;:::::inMMMMn+*++++
ii******++#####znz#+#zz#+##+i::::::,....`` ``...,,,,::;;;;iiiii****ii;;;;;;ii;,,,,::::::::;zMxz*:.``.,::::;;:,:::::,:i#M@xi::::::::;:::::*nMMMxz+*++++
iiiiiii*****++++##*+#nnzzzz+;::::::,..,,,.`````````..,,:::;;;;ii****ii;;;;;ii;,,,::::::::;*nMn+i,..,,,,,:;ii:,:::::::;*n@M+:::;:::::::::;+xMMWx#**++++
iiiiiiiiiiii****++**####zzz*;::::;:,,:;ii;:,,..```````...,,:::;;iiiiii;;;;;i;:,.,,:::::::;#Mx#i;:,,,:,,,:;**:,:::,::::;#WW#;::;:::::::::;#MMMMx#****++
++***iiiiiiiiiii*iii*++++z#*;::::::,,:i****ii;;:,,...`````....,,:;;;;;;;;;;;;:,,,,::::::,;zxz*;::,..,:,,:;**:,::,,:;:::*MWni::;:::;:::::izMWMMn+******
##+++****iiiii***iiiiii**++i;:::::,,,:;;ii******i;;;::,,........,,::::;;:;;ii;;;;;;;;;;;:izn#i::,.``,::,,;**:,:::::::::*xWni::;:::::::::*nMWMMz+******
+++++++++++**+#z#+***iii*+*;::::::,,,,::::;;iii*****iii;;:,,,..,,,,,,,:::;i****+++++***ii*##+i:,.` `,::,:i+*:,:::::::::inWxi::::::::::::*xMWMx#*******
*****++++###+#znz+++#++*+++;::::::,,,,,,,,,:::::;;iiiiiiiiii;;;::::,,,,:i+####zzzzzz###++#+++*;,`  `,::,:i+*:,:::,:::::inWxi:::;:::;::::+xMWMx#*******
iiiiii***++++##z#+#zzzz###+;::::::,,,,,,,,,,,,,,,,:::;;iii***iiiii;;;;;i+zzzzznnnnnzzzzzzz++##*:` `.,:,,:i+*:,:::,:::::inWni:::;:::;:::;#MMMMn+i******
iiiiiiiiii*****++*+#zzzzz#*;::::::,,,,,,,,,,,,::,,::,,::::;;;ii**++++++#znnnnnnzzznzzznnzz##zz#i.`.,::,,;**i:,:::::::::*MWni:::;;::::::izMMMMz*ii*****
++++*iiiiiiiiii*ii*+++##z#i:::::::,,,,,,,,,,,::::::,,,,,,,,::i*+####zznnnnxxxnnzzzzzzzznz##zzzz+;:,::,,:i**;:,::::::::;+WWz;:::::::::::*nMMMMz*iiii***
zzz##++++**iii**i;ii***+#+i:::::::,,,,,,,,,,,,::::::,,,,,,,,;*+#####zznnnnnnxnnzzzzzzzzz###zzzz#+*;::::;i*i;::::::::::;z@W+;:::::::::::*nMMMx#*iiiiiii
#######z###+++++i;iiiii*+*;::::::,,.,,,,,,,,,,,:::::::,,,::;*+####################zzzzzz###zzzzzz+*i;;;;;;;:::::::::,:*x@x*:::::::::;:;+xMMMx+iii*****
++++++#zzzzzznn#+*++**i*+*;::::::,........,,,,,,::::::,::ii*########+++**iiii**+##zzznnz#+#zzzzzzz#++*i;;:::::,::::,,;zW@z;:::::::::::;#xMMMn*iii*ii**
******+#####zxnz##zz#++++*;:::::,...........,,,,,,,,::;;*+#####++++++***i;:::;i+##znnxxnz+##zzznzzzz##+*;:,,:::::::,:+x@M+::::::::::::;zMMMMn*;iiiiiii
ii*ii***+++++##+++znzzzz#i::::::,...``````...,,,,,,,:;i+#####+++++++****i;:::;*+##zznxMxz###zzzzzzzz###+*;::::::::,,in@@zi::::::::::::inMMMxzi;iiiiiii
;;iiiiii******+**+#zzzzz+i::::::,....``````......,,:i*+####+++++++**iii;;:::;i*+##zzznnnnz##zzzzzz#++###+i;;::::,,:izW#M+:::;:::::::::*nMMMx#i;iiiiiii
iii;;;;;iii*i**ii*++++##+;::::::,........````````.:i++#####+++++**iii;::,,:;i*++##zzzzzzzzzzzz####+++++++***;;:,,:*zW#M#;::;;::::::::;+xMMMn+i;iiiiiii
++*iii;;;;;i*+*iiiiii*++*;:::::,..........```````,i+#######++++**iii;;:::;i*+##zzznnz####zzzzz####++++++++++*i;:;+nW#W#;:::;:::::::::;#xMMMz*i;iiiiiii
##+++++**ii+zz#+***iii*+i;:::::,,.`..........```,;*#####++++++++***ii;;;ii*++##zzznn#+++#zz##z###++###++++++*ii+zM@#Wzi,:;;::::::::::i#MMMMz*;;iiiiiii
++++#####++zxxz####++*+*i::::::,...`..........`.i+####+++++++++++**iiiiii***++#zzzz#+*++#######+++++#+++****++#xW#@M#i:::;;::::::::::izMMMM#i;;;iiiiii
****+++++##zzz##znzzzz#*;:::::,,....`........`.;#z###++++##+##++**i;;:;;;;;i*+##z##+*++++*+++++++++++++++++#zznM@Wx+;::;:::::;:::::::*xMMMx+;;i;iiiiii
;iii****++++++++#zzzzzz*::::::,,....``...`..``,*zz####++#####++*i;;::,,,:;i*+##z##+++##+*******++++++###zznnxnnnnz*;:::;:::::::::::::+xMMMn+;iiiiii**+
::;;;;;i**ii**i*++#####*::::::,,.....``..`..`.;+##++####zzz#+**i;:::,,,:;i*+#####+++###+******+++++###zznnxxnz#+*i::::::::::::::::::;#xMMMn+;iiii*+#zn
:::,,,::;;ii**iiii**+++*::::::,,.....``..`..`,*###+#####z##+*iii;::,:::;i*++####++**###+*****++++++###zzzzzz###+i;:::;::::::::::::::izMMMMz*;iii*+#znx
*iii;;:,,;*##+**iiii*+*i::::::,,....```.``.`.;+z#+###z###++*iii;;::::;;i*++++#++++*+##+*ii***+++++#########+++##+i;:::::::::::::::::izMMMx#i;iiii*+#zz
#++++*i;;i#xxz##+******;::::::,.....``.``.``,*######z##++****ii;;;;;iii****+++++++++++*iiii***+++++#######++++###+*;::::::::::::::::*nMMMx+i;;ii;iiii*
**++######zxxz#zz####+*;::::::,..,..``.````.;#z#######++*****iiii******i;;ii**+++++***ii;;iiii*+++########+++#####+i;:::::::::::::,:+xMMMn+;;;;;;;;;;;
ii*+++####zzz##nnzzzz#*::::::,,..,,.```````,*zz#####++****+****+++**ii;;;;;ii**iiiiiii;;;;iiiii*+++##########z#####*i;::::::::::::,;#xMMMz*;;;;;;;;;;;
iiiiiii***+++*+zzzzzz#i::::::,...,,.```````;#zz###+++*******++++++*iii;;i*****ii;;:;;;;;;iiiiiii***++###zzzznzz####+*i;::::::::::::izMMMMzi;;;;;;;;;;;
iiii;;iiii**ii*+#+###+i::::::,...,,..`````,*zzz###+***++++**##+*****++++###++**i;:::;;;;;iiiiiiiiii**+##znnnnnnz###++*;::::::::::::inMMMx#;:;;;;;;;;;;
**++*iii*+#+*i*****+++;::::::,...,,.```` `;#nz###++**++++++*++++++####++++++***ii;;;;;;::;;;;iiiiiiii**++#zzzzzz#++++*i;:::::::::::inMMMx#;:;;;;;;;;;;
##zzz#++#nxn+*++**i*+*;::::::,...,,...`` .+nnz##++++++###+++**++###++*iiiii;iiiii;;;;;;::::;;;;ii**iiii****++###++++++*i;:::::::::;*nMxMx+;:;;;;;;;;;;
+#zzzzzznxxn+#z#+++++i::::::,...,,,,..` `;znzz##++++#####+++##++**ii;;::::::::::;;;;iii;;;;:;;;;ii***++++****+++++###++*;:::::::::;#xMMMzi::;;;;;;;;;;
*+++###zzzn#+znz####+i::::::,...,,,,,.` .innzz#++++#########++*ii;;::::::::::::::::;;;iii;;;;;;;;;i**++##+++++########+*i;::::::::izMMMMz;::;;;;;;;;;;
*******++++**#nzzzzz#i::::::,...,,,,,.``,*nnz##++#####++++#+i;;;;;::::::::::::::::::;;;;;;;;;;;;;;;ii*++###zzzzzz#####+*i;::::::::izMMMx#;,:::::::;;;;
*********+*ii+####zz+i::::::,...,,,,,..`:+nn###++###+++++**i;;;::::::::::::,,:::::::::;;;ii;;;;;;;;ii**++##zzzzzzzz###+**;::::::::*nMMMn+:,:::::;;;;;;
********+#+*i**+++##+;::::::,....,,,,...;#nz########+++**i;;;;;;;::::::::::,,,,,,,:::::;;;;;;;;;iiiiiii**+##zzz##zzzz##+*i:::::::;+xMMMn+i;;;:::::::::
####+++#zn#+++****++*::::::,.....,,,,,.,*znz#######++**i;;;;;;;;;;;;::::::,,,,,,,:::::::;;;;;;;iiiiiiiii**+##z###zzzzzz#*i:::::::;#xMMMxz#++*i;;;:::::
zzzz###zxx#+##++**++i::::::,.....,,,,,,:+nnzz##z##++**i;;;;;;;;;;;;:::::::,,,,,,,:::::::::;;;;;;iiiiiiiii**+##zzzznnnzz#+i:::::::izMxMMMxxnnnz#+**ii;;
###zzzznnn#+zz#####+i::::::,.....,,,,,,:+nnzzzz#++*iiii;;;;;;::::::::::::,,,,,,,,::::::::::;;;;;;iiiiiii****+#zzznnzzzz#+i:::::::izMMxMMxxxxxxnnnzz#++
+++#####z#++znzzzzz+;::::::,.`....,,,,,:+nnzzz##*iii;;;;;;;;;:::::::::::,,,,,,,,,,:::::::::;;;;;;iii**i*****+##zzzzzzzz#+i;::::::*nMMxxnnnnxxMxxMxxnnn
****+**+++*+zzzzzzz*;::::::,.`....,,,,,:+nnnzz#+iiii;;;;;;;;;;;:::::::::,,,,,,,,,,::::::::;;;;;;;ii*********++###zzzzzzz+i;:::::;+xMMxn##zzznxxxxMxxxx
**i****++*ii++#####*:::::::,.`....,,,,.:+nnnz#+*iiii;;;;;;;;;;;;;:::::::,,,,,,,,,,::::::::;;;;;;iii***+*++++++++#zzzzzzz+i;:::::;#xMxxz*ii**+##znxxMMM
******+zz+*i****++#i:::::::,.`....,,,,.:+nxnz#*iiii;;;ii;;;;;;;;;;;:::::,,,,,,,,,:::::::::;;;;;;iii**++++++++++##zzzznnz+i;:::::;zMMxx#;:::;ii*+##znnn
+++***#xMz++#+**+++i::::::,.```....,,..;#xxnz#*iiiii;;ii;;;;;;;;;;;:::::,,,,,,,,,:::::,:::;;;;;ii*****++++++++####zzzzz#+i;:::::inMMxn+;::;;;;;;iii**+
####+#nMMz#zz#++##+;::::::,.```....,,.,izxMnz#+*iiiii;;;;;;;;;;;;;::::::,,,,,,,,,:::::::::;;;;iii**+*++###++#######zz###+i;:::::*xMMxn#i;;;;;;;;;;;;;i
zzzzzznxn##zz#####+;::::::,,.......,,.,inMxnz#+*iiiii;;;;;;;;;;;;;::::::,,,,,,,,,,,,::::::;;;iiiii*++++################++i;::::;+xMMxxz+***iiii;;;;;;;
#######zz##zzzzzz#*;:::::::,,,,,,,,,,.,*nMxn##+*iiiii;iii;;;;;;;;;::::::,,,,,,,,,,,,::::::;;iiiiii*+++++#zz######+++++++*i;::::;#xMxxxnzzz##++**iii;;;
*+++++##+*+#zzzzz#*::::::::::::::,,,,.,*nWxzz#+**iiii;iii;;;;;;;;;::::::::,,,,,,,,,,::::::;;iiiii**+##++##zz######++++++*i;::::izMMxxxnnxxnnzz##+++**i
*****#zz*i*+####z#i:::::::::::::::::,,,*nMxnz#+**iiii;iii;;;;;;;;;:::::::::,,,,,::::,::::::;ii*****+######zz########++++*;;::::*nMMxxnzzzzznnnnzzz#+++
***i+zxn*i*##+###+;::::::::::::::::::::izMxnz#+**iiii;;;;;;;;;;;;;:::::::,,,,,,,,,,,,,::,::;i***++*++#zz####zz###zz##++*i;;::::+xMMxn#**++##zzzzz##+++
##+*+nMn*;*##+###*;::::::::::::::::::::i#nnnz#+*iiii;;;;;;;;;;;;;;:::::,,,,,,,,,,,,,,::,,,:;ii**+++++##zz########zz##++*i;::::;+xMMxz+iii***++##+++***
zzz#znxz*i+z###z#*;:::::::::::::::::::::*#nnz#+*iiii;;;;;;;;;;;;;;:::::,,,,,,,,,,,,,:::,,,::;i**++++++##zzzz#########+**;;::::i#xMxxz+*i***********iii
##zzznnz##zzz##z#i;:::::::::::::::::::::;+znz++*iiii;;;;;;;;;;;;;;::::,,,,,,,,,,::::::::::::;ii*++++++++##zz##z####++**i;:::::izMxxxn#+*+***i*********
+++###z##zzzzzzn#i:::::::::::::::::::::::*znz++*iii;;;;;;;;;;;;;;;:::::,,,,,,,,,:::::::::::::;i**++++++++#####z###++****;:::,:*nMxxxz#+++++***********
***+#####zz#zzzz+i:::::::::::::::::::::::izn#++*iii;;;;;;;;;;;;;;;::::::,,,,,,,,:::::::::::::;;i***++++*++++++#+++*****i;:::,:*nMxxxz#+###++++++++++**
+++#znnzzz#++###*;:::::::::::::::::::::::i##+++*iiii;;;;;;;;i;;;:;;;::::,,,,::::::,,:::::::::::;ii*++++++++***********i;;::::;#xMxxxzzz####++########+
zz#znxxnnz#+++##*::::::::::::::::::::::::*##+++*iiiii;;;;;;iii;;:;;;:::::;;;;iii;;;:::::::::::::;ii+###+++****iii****i;::::::;zxMxxxnnzzz######zzzzzzz
nnnnxxxxnn####z#i:::::::::::::::::::::::;+zz#++**iiiiii;;iiiiii;;;;;;;;ii****iiiii;;;::::::::::::;i+#zz#+++++**i**++*i;::::::izMMxxxnnnnzzz#####znzzzz
zzznnnxxnnz#zzz#i:::::::::::::::::::::::;+nnzz#+**iiiiiiiiiiiiii;;;;i**+##+*i;::::;;;;;:::::::::::;*#nnzz##+++++*****i:::;:::*nMMxxxnnnnnzzz###zznnnnn
#####zzznnzzzzz+i:::::::::::::::::::::::;+nxnnzz#+****iiiiiiiiiiiii*++###+*i;:,,,,::;;;;::::::::::;*#nnnnzz#####*iiii;;::;:::+nMMxxnnnnnnzzzzzzzzzzzzz
########zzzzzzz+;:::::::::::::::::::::::;+nxnxxxnz#++*****iiiiii*++######+*ii;;:,,,:;;;:::::::::::;i+znnnnzz###*i::;ii;:::::;+xMMxxnnzzzzzzzzznzzzzzzz
znnnzzzz#####zz*;::::::::::::::::::::::::*zxxMMMMMxz#++++**i****+##zzz#znz#++*i;;:::;;;:::::::::::;i+#zzzzzz#+i;::;i*ii;::::i#xMMxnnnzzzzzznnzzzzzzzzz
nxxxxxnnz#+##z#*;::::::::::::::::::::::::izMWWWWW@WMxzz#+**i****+####zznxxnnz#+*i;;;;;;:::::::::::;i+#######*i;::;i*+*i;::::izMMMxnnnnzzzznnnzzzzzzzzz
nnxxxxxxnz###z#i;::::::::::::::::::::::::i#MWWMMW@@@WMxz+*iiiii*+++##znnnxxxxnz#+*ii;;;;::::::::::;i+#####+*i;;;:;i***i;::::*nMMxxnzzzzzzznnnzz#zzzzzz
znnnnxxnnz##zz+i:::::::::::::::::::::::::;+xWMnzxM@@@WMn#*i;;;;i**+#znnz+#nxMxnnz#+*i;;;;:::::::::;i*+####+*i;;::::;;;;:::::+xMMxxnzzzzzzzzzzzzzzzzzzz
###zzznnnzzzzz+;::::::::::::::::::::::::::izMxz+zxMW@@WMz*;;::;;i*+znz#*i+nMMMxnnz#+iii;;:::::::::;i*+++++*i;;:,,,:;;::::::;#xMMxxnzzzzzzzzzzzzzzzzzzz
+++####zzzznnz+;::::::::::::::::::::::::::izxx#+#znxxMWMz*;::::;i*+###*ii+nMWxnzz##+iii;;:::::::::;i*++++**i;;:,.,;;;:;;:::;#MMMxxzzzzzzzzzzzzzzzzzzzz
######+++###z#*:::::::::::::::::::::::::::izxn##+##++zWWzi:,,::;;i*****i;*zxMn#*****i;;;::::::::::;i**++**iiii;::,:;;;;;:,:*nMxxxnzzzzzzzzzzzzzzzzzzzz
nnnnnzz##++#z#i:::::::::::::::::::::::::::*zxnz##++**#MM#;:,,,:::;ii****;i+zz#*i;;ii;;::::::::::::;;i*****iiii**;::;;;:::::+nMxxxnzzzzzz##zzzzzzzzzzzz
xxMMMxxnz###z#i:::::::::::::::::::::::::::*znnz##++**#xn+;:,,,::::;i*++*ii****i;;;;:::::,,:::::::::;ii**iii;;i**i:,:;;::::;+nMxxxnzzzzzz####zzzzzzzzzz
xxxxxxxnzzzzz+i::::::::::::::::::::::::::;+znz##++*i*#nz*:,,,:::,:;i*+++**iiii;;;::,,,,,,,,::::::::;;;iii;;;::i**;::;;::::;#xMxxxxnnnnzzz#######zzzzzz
zzznnxnnnnnnz+;::::::::::::::::::::::::::;+zz##++**i+zn#i:,,,::,,,:i*++++**ii;;;::,,,,,,,,,::::::::;;;;;;;;:,,;i*;::;;;:::izxxxxxMxxxxnnnzzzzz########
+++##zzzzznnz*:::::::::::::::::::::::::::i+##++***i*+nn+;:,,,,,,,,:;i*****ii;;;::,,,,,,,,,:::::::::;;;;;::::,,:ii;;;;:;;::izMxxxMMMMMMxxxnnnnzzzz#####
##++++++##znz*:::::::::::::::::::::::::::i+#+****ii*#nz*;:,,,,,,,,,:;i**i;;;;:::,,,,,,,,,,:::::::::;;;;;::,,,,:ii;:;;:::::*nMxxxxMMMMMMMxxxxxxxnnzzzzz
nnnzz##+++###i:::;:::::::::::::::::::;:::i+#***iiii*#n#*:,,,,:,,,,,::;ii;;;;:::,,,,,,,,,,,::::::::;;;;;::,,,,,;i;:::;::::;+nMxxxxxMMMMMMMMMMMMMxxxxxnn
MMMxxnzz####+i:::;:::::::::::::::::::::::i##**iiiii+zn#i:,,,::,,,,,,::;;;;;::,,,,,,..,,,,,:::::::;;;;;;:::,,,:;;;::::::::;#xxxxxxxMMMxxxxMMMMMMMMMMxxx
MMMMxxnnzznz+;:::;:::::::::::::::::::::::i##*iiiii*+zn+;:,,,,,,,,,,,,,::;;;::,,,,,..,,,,,,::::::;;;;;;;:::,,::;;;;;:::;::izxxxxxMxMMxxxxxxxMMMMMMMMxxx
nxxxxxxnnnxn*;::;;:::;:::::::::::::::::::i##*iii;i*#nz*;:,,,,,,,,,,,,,,,:::::::,,...,,,,,:::::;;;;;;;;:::::::;:::;;:::;::*zxxxxMMMMMMxxxxxxxxxxxMxxxxx
zznnnxnnnnxz*:::;;;::;;::::::::::::::::::i##*iiiii*#nz*;:,,::::,,,,,,,,,,:::::::,,,,,,,,::::::;;;;;;;:::::::::::::;::;;::+nxxxxMMMMMMMxxxxxxxxMMxxxxxn
#+##zznnnnnzi:;;;;;;;;;;;;;::::::::::::::;+#+*ii**+zn#i;:,:::::,,,,,,,,,,,::::::,,,,,::::::::;;;;;:;;::::,,,,,:::;;;;;::;+nxxxMMMMMMMMMxxxxxxMMMMxxxnn
zz######zzz#;:;;;;;;;;;;;;;;:::::::::::::;+#+*****+nz+i:,,:::::,,,,,,::,,:::::::::,:::::::::;;;;;::;;;:::,,,,,::;;;;;;::i#xxxMMMMMMMMMMxxxxxxMMMMMxxnn
Mxxnzz###zz+;:;;;;;;;;;;;;;;;::::::::::::;*##****+#nz*;:,,::::::::::::::::::::::,,,,::::::::;;;;;:::;:::::,,,,:;;;;;;;::izxxxMMMMMMMMMMxxxxxxMMMMMxxnn
MMMMxxnznnz+;:;;;;;;;;;;;;;;;;::::::::::::*##+***#nn#i:,,,::::::::::::::::::::::,,,::::::::;;;;;::::::::::::,::;;;;;;;:;*zxMxxxxxMMMMMMxxxxxxMMMMMxxnn
MMMMMxxxxxz+;:;;;;;;;;;;;;;;;;;:::::::::::*##+**+zxn#i:,,:::;::::;;;::::::::::::,:::::::::;;;;;;:::::::::;::::;ii;;;;::;+nMMxxnznxMMMxMxxxxxxxMMMMxxnn
nxxxxxxxxxz*;;;;;;;;;;;;;;;;;;;:::::::::::i##+**#nxn+;:,,::::::::;;;;;::::::::::::::::::::;;;;;;::::;;;::;;::;;ii;;;;::;#xMMxnz##nMMMxxxxxxxxxxMMxxnnn
zzznnnnxxx#i;;;;;;;;;;;;;;;;;;;;::::::::::i+#+*+zxx#i:,,,::::::::;;;;;:::::::::::::::::::;;;;;;;::::i**i;;;;;;;ii;;;;::izxMMxn#+#nMMMxxxxxxxxxxMMxxnnn
zzzzzzzznn+i;;;;;;;;;;;;;;;;;;;;:::::::;::i+#+*+zxn+;:,,:::::::::;;ii;::::::::::::::::::::;;;;;:::::i++*;;;;;;;;;;;;;::inMMMxz#+#nMMMxxxxxxxxxxMMxxnnn
xxxnzzzznz+i;;;;;;;;;;;;;;;;;;;;;::::::;::;+##+#nxz*:,,::::::::::;;iii;:::::::::::::::::::;;;;::;:::i##*i;iii;;;;;;;::;*nMMMxz#+#xMMMxxxxxxxxxxMMxxnnz
MMMMxnnnnz*;;;;;;;;;;;;;;;;;;;;;;::::::;::;+###zxxz*;::::::;::::::;;iii;;:::::::::::::::::;;;;::;;:;i++*iiiii;;;i;i;::;+xMMMxz++zxMMMxMMMMMMMMxMxxnnnz
MMMMMxxMxz*;;;;;;;;;;;;;;;;;;;;;;;::::::::;+z#znxxz*i;:::;;i**ii;::;;ii;;::::::::::::::::;;;;;:::;;;;i**iiii;;;;iii;::i#xMMMn#++zMMxxMMMMMMMMMMMxxnnnz
xxxxxxxMxzi:;;;;;;;;;;;;;;;;;;;;;;:::::::::*zznxMxn#*i;;;ii*++*i;:::;;;;;;;::::::::::::::;;;;:::::;;;;i**iii;;;iiii;::izxMMMn#++nMMxMMMMMMMMMMMMxxnnzz
zznnnxxxx#i;;;;;;;;;;;;;;;;;;;;;;;:::::::::i#nxxxxxn#+*ii**iiii;::,,:;;i;;;;:::::::::::::;;::::::;;:;;i***iiiiiiiii;::*nMMMxz++#xMMMMMMMMMMMMMMMxxnnzz
zzzzznnnz+ii;;;;;;;;;;;;;;;;;;;;;;::::::;::;#nxnxxxxnz#+***;::::::::::;;;;;;::::::::::::;;;:::::;;::;i****iiiiiiiii;::+xMMMxz++zxMMMMMMMMMMMMMMMxxnnzz
zz##zzznz*iii;;;;;;;;;;;;;;;;;;;;;::::::;::;+nnnnnxnxn#+**i;::::::::::::;;;;:::::;;;::::;;;:::::;;::;i***iiiiiiiiii;:;#xMMMxz++zxMMMMMMMMMMMMMMMxxnzzz
#####zzn#*;;;ii;;ii;;;;;;;;;;;;;;;;::::;;::;*znnnnnzzz+iiii;::::::::::::;;;;;::::::::::;;;;:::::;;::;i***iiii**ii*i;:izMMMMx#+#nMMMxMMMMMMMMMMMMxnnzzz
*****++##*;;iiiiiiiiiiii;;;;;;;;;;;::::;::::i#zznzz##+i;;iii:::::::::::;;;;;;;;:::::::::;;:::::;;:::;i*+**iii**i**i::izMMMMn#+#nMMMxMMMMMMMMMMMMxnnzzz
****ii*++*iiiiiiiiiiiiiii;;;;;;;;;;::::;::::;+zzzzz##+i;;;ii:,:::::::::;;;;;;;;;::::::::::::::;;;:::;i++**ii***i**i::*nMMMMz++zxMMMxMMMMMMMMMMMMxnnzzz
zzz#+++#+*iiiiiiiiiiiiiiii;;;;;;;;;;:::;::::;*#zzznnz#+iiiii:::::::::::;;;;;;;;;;:::::::::::::;;::::;*++**ii***i*i;:;+xMMMxz++zxMMMMMMMMMMMMMMMMxnnzzz
Mxxxnnz#+iiiiiiiiiiiiiiiiii;;;;;;;;;::::::::;*+#zzxxxnz#++++***iiiii;;;;iii;;;;;;::::::::::::;;;::,:i*+**i*****i*i;:;#xMMMx#++nxMMMMMMMMMMMMMMMxnnnzzz
MMMMMMxz*iiiiiiiiiiiiiiiiiii;;;;;;;;:::::;:::i*+#zxMMxxnzzzzzz#++++++***iiiii;;;::::::::::::::;::,,:i++*ii*******i;:izMMMMn#+#nMMMMMMMMMMMMMMMMxnnzzzz
xxMMMWMz*iiiiiiiiiiiiiiiiiii;;;;;;;;:::::;:::;i+#znxxxxnzzzz#########++*iiiii;;;:::::::::::::::::,::i******+*****i::*nMMMMn#+#xMMMMMMMMMMMMMMMMxnnzznn
###znxx#iiiiiiiiiiiiiiiiiiii;;;;;;;;;::::;::::i*+#znnnz####+++**+++**ii;;;;ii;;;:::::::::::;;:::,::;i****++******;::*xMMMMn++zxMMMMMMMMMMMMMMMxxnznnnn
iii*++#*iiiiiiiiiiiiiiiiiiii;;;;;;;:;:::::::::;*+#znnz##++++***iiii;;::::;;;i;;;;::::::::::;:::,,::;;ii*+++******;:;+xWMMxz++zxMMMMMMMMMMMMMMMxxnzznnn
ii*i**i***iiiiiiiiiiiiiiiiii;;;;;;:::::::::::::;+zznnzz#+++++**ii;;;;::::;;;;;;;;;;::::::;::::,,,::;;iii*++**++*i::i#MWMMx#+#nMMMMMMMMMMMMMMMMxxnzznnx
##+**ii******i*****iiiiiiiii;;;;;;:::::::::::::;*znnzzzz###+++*ii;;;;;::;;;;;;;;;;::::::::::::,,,::;iiii*+++++*i;::izMWMMx#+#nMMMMMMMMMMMMMMMMxnnzznxx
xxz+*********i******iiiiiiii;;;;;;:::::::::::::;i#zzz#z####++**ii;;;;;:::;;;;;;;;;::::::::::::,,:::;i**iii++++*i;::*nMWMMn##zxMMMMMMMMMMMMMMMxxnnzznxx
WWx#*******************iiiii;;;;;;;:::::::::::::;*zz#++++++***iii;;;;;;:::;;;;;;;;::::::::::::,::::;i+#i:;*++**i;:;+xMWMxz##zxMMMMMMMMMMMMMMMxxnnnznxx
@Wn+********************iiii;;;;;;;::::::::::::::i###+****iiiiii;;;;;:::::::;;;;;;;;;;::::::::,:::::i#zi,:i++*i;::;#MWWMxz+#nMMMMMMMMMMMMMMMMxxnnnnnxx
@Wn*i*******************iiiii;;;;;;::::::::::::::;+##+**iii;;;;;;;;:::::::::::;;;;;;;;;::::,,,,:::::i+zi..;++*i;::;zMWWMxz+#nMMMMMMMMMMMMMMMMxxnnnnnxx
@Mz**********************iiii;;;;;;::::::::::::::;*##+***ii;;:;:::::::::::::::;;;;;;;;;:::,,,,,,::::;+#;`.:*+*i;::inWWWMxz+zxMxnnMWWMMMMMMMMMxxnnnnnxx
Wx#******+***************iiii;;;;;;:::::::::::::;:;+##+**iii;:::::::::::::::::;;;;;;;;::::,,,,,,::::;i*:``,;*i;:::*nWWWMn##zxxz##nMWMMMMMMMMMxxnnnnxxx
xn#******+***************iiii;;;;;;:::::::::::::;::*+#++*iii;;::::::::::::::;;;;;;;;;::::,,,,,,,:::::;;,``.:;i;::;+xWWMxn##znn#*+#nxMMMMMMMMxxnnnnnxxx
nz+*****++****************iii;;;;;;:::::::::::::;::i++++**ii;;;::::::::::::;;;;;;;;;:::::,,,,,,,:::::::.``.,:;;::;zMWWMxzz####+**+##nxxxMMMMxxnnnnxxxM
##+*****+*****************iii;;;;;;::::::::::::::::;*+#+***iii;;;;;;;;::::;;;;i;;;::::::,,,,,:,:::::::.``...,::;:izMWWMnz#zz#+++++++##znxxMMMxnnnnxxMM
++++++*++******+**********iii;;;;;:::::::::::::::;;i*##++**iiii;;;;;;;::;;;;;ii;;;:::::,,,,,:::::::::,.``....,:::*nMWWMn#znz#####+++**##znxxxxxnnnxxMM
++++++*++++*++++++++++****iii;;;;;::::::::::::;;;i*++++++**iiiiiii;;;;;;iiii;;;;:::::,,,,,,,,:,:::,::,```....,::;+xWWWxz#nMn#######*****#zzznnnnnnxxMM
*++++++++++++++++++++++***iii;;;;;;::::::::::;iii*+++#####+****iiiii;;iiiiii;;::::,,,,,:,,,,::,:::,:,.```.....,:;+xWWWx#zMWnzzzz##+*++**+####zznnxxMMM
i*+++++++++++++++++++++****ii;;;;;;;::;;;;;ii**++++++#znxnz#++******ii**iii;;::::,,,:::::,,:::::::::,.```......,i#MWWWn#zMWxzznn#+**++++#######znxxMMW
;*+#++++++++++++++++++++***ii;;;;;;:;;;ii**++####++++#znMWMnz##++++*****i;;;::::::::::::::::,:::::::,`````...`.,*nWWMMn#zMWxzznn#+++#++#z#####znxxxxMW
:i+#++++++++++++++++++++**iii;;;::::;;i*+++##zz#++++++#zMWWxzz##+++*****;;;::::::::::::::::,,,::::;:.`````....`.ix@@MMn##MWxzznn#+#z#+#nz##zzznMMMxxW@
:i+##++++++++++++##+++++*ii;;;:::::::;i*++++####*******#xWMnz##+****iiii;;;;::::::,,::,,,::,,,,::;;,.`````....``:#M@WWz+#MWxzznz##nx#+#nnzzznnMWWWWWW@
,;+##++++++#++#####++**ii;;;::::,,,,,:;*****+#+****ii;i+nMxz#++*iiiii;;;;;;;:::::,,,::,,,,,,,,,::;;,```````....`.;#xWWn+#MWxnzz##zMx#+znnzzznxM@@@@@@@
,;+##++++++######++*ii;;;:::::,,,,,,.,;iiii*++*i***;::;+nMxz#+**i;;;;;;;;;;::::::,,,:,,,,,:,,,,:;;:.`````..`...``.:*zxz+zMWxnzz##xWM#+znzzzznxMW@WMWW@
,:*###++##+####++*ii;;::::::,,,,,,..,:;;;:;i*+ii**i:,,:*zxn#++**i;;;;;;;;:::::::,,,,:,,,,::,,,,:;;,```````.........,;+++nWWMnz#+zMWx#+znzzzznxMWWxznMW
.:i########+++**i;;:::::,,,,,,,,,,,,:::::,:;i*ii**i:,.,i#nz++**ii;::::::;::::::,,,,,:,,,,:::,,::;:.````````...`......:;izMMMn#++nW@x##znzzznxxMWx+i+xW
.,i#z######+iii;;:::,,,,,,,,,,,,,,,::::,.,:;iiii**;,..,;+z#+***i;;::::;;;::::::::,,,:,,,,:::,:::;,`````````............:i#nxn#+#x@Wn##znnzznMMWWni:+M@
.,;+#######*;:;:::,,,,,......,,,,:::::...,:;;;ii*i:...,:*##*iiii;;:::;;;::::::::::,:::,,::::,,:::.`````````.`......,....,:*zz#+zW#Wz+#znzznMWWWWx*i#W#
,,;+###z#+*;::::,,,..........,,,:::,,.``.,::;;iiii:....:i++i;;iii;::::::::::::::::::::,,:::,,,;;.````````````....``.......,;ii+x@@x##znz#zxW@@@@MzznW#
,,:*####+*;::::,,,...........,,,,,,,.```.,,::;iiii:,...,;**i;;;ii;::::::::::::::::::::,::::,,:;:```````````````...`.....,..,,:izMMz#znnz#zM@#@@@WMMWWW
,,:i#z#+*;:,::,,,,...........,,,,.....``.,:::;;ii;:,...,;ii;;;;ii;:::::::::::::::::::,:::,,,:i;,````````````````............,,:i+#+#nxnz#zM@####@@#@WW
:,,;+z#i;,..,,,,,..................`````.,::::;ii;:,...,:ii;;;;;;;;:::::::::::::::::,::::,,:;i:`````````````````..,,...``......,:;i+nxnzznM@#######@@@
:,,;+#*;,...,,,...................```....,::::;ii;:,...,:;;;;;;;;;;:::::::::::::::::,::,,:,;i;.`````````````````..,,,..``........,:;*##znxW@#@@@#@@@##
,,,:*+i,...,,......................``...,,:::;ii;;;:...,:;;;;::;;;::::,,:::::::::::::::,,:;i;,```````````````````.,,,.....,.......,,,:i*#nW@##@@@WW@##
,,,:i*:....,............................,::::;i;;ii:...,:;;;:::;;;:::,,,:::::::::::::,,:,:ii:````````````````````.,,....,,,....,,......,;*zMW@#@WMMW@@
,,,,;;,..............................`.,::,,:;;;;i*:...,:;;:::::;;::::,,,::::::::::::,,::;i;.```````````````````..,,...,:,,,..,,,,,,.....,;*#xW@WMWWWW
,,,,::...............................`.,::,,:;;;;**:.`.,:;;:::::::::::,,,,::::::::::,,,:;i;,` ``````````````````..,....,:,...,,,,,,,,,,,....:i+zxMW@@@
::,,::...............................`.,:,,:;;;;i**:.`.,:;;:::::::::::,,,,,:::::::::,:::;;,`` ``````````````````.....`.,:,...,,,,,.....,,,,,.,,:*#xW@@
::,,::,..............................`.,:,,:;;;;*+*:.`.,:;:::::::::::::,,,,::::::::::::;i:.``````````````````````...``.,:,`...,,,.....,,,::,,...,:*nW@
::,,::,.............................`.,::,,:;;;i*+*;,`.,;;;::::::::::::,,::::::;::::::;i;.````````````````````````..``.,,.`...,,.....,,,,,,,,,,,..,i#n
::,,,,,,...........................``.::,,,:::;****;,..,;;;:::::::::::::::::::::;:::,;i;,`````````````````````````````,:,...........,,,,,,,,,,,,,,,,::
::::,,,,...........................``.::,,,:::;****i,..,;;;:::::::::::::::::::::;::::ii,`````````````````````````````.,:............,,,,,,.,,,,,,,,,..
::::,,,,...........................`.,:,,,,,,,;i***i:..,:;;:::::::::::::::::::::;::;;i;.`````````````````````````````.,:............,,,,,.,,,,,,,,,,,,
::::,,,,..........................`..,:,,,,,.,:i***i:..,:;;::::::::::::::::::::::::;i;,``````````````````````````````.,,.............,....,,,,,,,,,,,,
::::,,,,..........................`..,:,,,,...:;****;,`.:;;;;;::::::::::::::::::::;ii:.`````````````````````````````.,,,..................,,,,,,,,,,,,
::::,,,,..........................`.,,:,,,,...,;****;,`.,;;;;;;:::::::::::::::::::;ii,``````````````````````````````.,,,..................,,,,,,,....,