;;;;;;;:::::::::::;;;;;;i*+######################################################################################+++++**
;;;;;;;;::::::::::;;;;;;i*+###################################################zz##zzzz######zzzzzzzzz#####++*****iiiii;;
;;;;;;;;::::::::::;;;;;;i*+##########################################zzzzzzzzzzzzzzzzzzzzzz####++++****iiiii;;;;;;;:::::
;;;;;;;;;;:::::::::;;;;;i*+#################################zzzzzzzzzzzzzzzzzzzzz###++++****iiiiiii;;;;;;;:::::::::::,,,
;;;;;;;;;;::::::::::;;;;i*+#############################zz#zzzzzzzzzzz####++++****iiiiii;;;;;;;;:;::::::::::::::,,,,,,,,
;;;;;;;;;;:::::::::;;;;;i*+###########################zzzzzzz###+++****iiii;;;;ii;;;:;::::::::::::::::::::,,::,,,,,,,,,,
;;;;;;;;;;::::::::::;;;;i*###################zzzzz####+++****iiiiii;;;;;;;;::izMxz#*;:::::::::::::::,,,,,,,,,,,,,,,,,,,.
;;;;;;;;;:::::::::::;;;;i*+########zzzzzzz###++****iiii;;;;;;;;;;:::::::::::*nnnnnnzz#i::,,,,,,:,,,,,,,,,,,,,,,,,,,,,...
;;;;;;;::::::::::::::;;;i*+######++++****iiiii;;;;;;;:::::::::::::::::::::*nnzzz#zz##zz+i:,,,,,,,,,,,,,,,,,,,,,,,,......
;;;;;;;:::::::::::::::;;;iiiiiiiiii;;;;;;;;;::::::::::::::::::::::::::::;znnnzzzzzzzz##+#+:,,,,,,,,,,,,,,,,,,,,,,,,.....
;;;;;;;:::::::::::::::::;;;;;;;;;::::::::::::::::::::::::::::::::::::::innnnnnnz#zzzzzzzzzz*:,,,,,,,,,,,,,,,,,,,,,......
;;;;;;;:::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,:::::::::::innnzzz#+zz+*iiiii;*+++i:,,,,,,,,,,,,,,,,,,.......
;;;;;;;:::::::::::::::::::::::::::::,,,,::,,,,,,,,,,,,,,,,,:,::::::::innnzzz#z#+***+****+#z#+#*,,,,,,,,,,,,,,,,,,.......
;;;;;:;::::::::::::::::::::::::,,,,,,,,,,:,,,,,,,,,,,,,,,,,:::::::::innnnnnz#+++**ii*+#z##nxn##i,,,,,,,,,,,,,,,,,.......
;;;;;:;::::::::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;zznnnz#+++*****+++++++#zxn#+:,,,,,,,,,,,,,,,,.......
;;;;;;;::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;+znxx#+++++++*******i;::;+nz##;,,,,,,,,,,,,,,,.......
;:;;;;::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;iznxn++#*+izz+++++**ii;:,,:+z##i,,,,,,,,,,,,,,........
;;;;;;::::::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;#nnz+++++nxxnz###+++*i;:,,,:##zi,,,,,,,,,,,,,,,.......
;;;;;;::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;;;*nxn#++#zz#x#zz##+*i;;;:,,,,,*#z+:,,,,,,,,,,,,,,.......
;;;;::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;;izxnz+#*#*:+n####+*;:,,,,,,,,,:###;:,,,,,,,,,,,,,.......
;;;;;::::::::::::::::::,,:,,,,,,,,,,,,,,,,,,,::::::::::::;;;;;;i+nnz#z*+zii##++z##*;:,,,,,,,,,,#zz+:,,,,,,,,,,,,,.......
;;;;;;:::::::::::::::::::,,,,,,,,,,,,,,,,,,:::::::::::;;;;;;;iiiznzz#+izxi:#+*+#+*i::,,,,::,,,,*nn+;,,,,,,,,,,,,,.......
;;;;;;:::::::::::::::::,,::,,,,,,,,,,,,::::::::::::::;;;;;;iiii+nzn#+*#nxi,i+;*++i;:,,.,,.:;,,,+nn+;:,,,,,,,,,,,,.,.....
;;;;;;:::::::::::::::::::::,,,,,,,,,,,,::::::::::::;;;;;;;iiii*#zzz#*inznn,,+ii**i;:,,.:;:,i,,,zxn+;:,,,,,,,,,,,,,......
;;;;;;;:::::::::::::::::,,:,,,,,,,,,,,::::::::::::;;;;;;iiiii*+##zz*;z#++xi,*iiiii;:,,,;i;:+;,,nxz+::,,,,,,,,,,,,,.,....
;;;;;;;::::::::::::::::::::::::,,,,,,:::::::::::;;;;;iiiiiii**##zz+i#zz**zz:ii;;;;;;,,,i#;i#i,;nx#*::,,,,,,,,,,,,,,,,,,,
;;;;;;;:::::::::::::::::::::::::,:::::::::::::;;;;;;iiiii****+##zz#;nMn*i*n**i;:::;;:,,:M**#;,#zn+i::,,,,,,,,,,,,,,,,,,,
;;;;;;;::::::::::::::::::::::::::::::::::::::;;;;;;iiiii*****+zzxz+#nxx#**z+*i;::::;:,,,++;;:iz#z*;::,,,,,,,,,,,,,,,,,,,
;;;;;;;::::::::::::::::,,::::::::::::::::::;;;;;;;iiiii*****+zzxnx*z##nz+##+*;::,,:::,,,,,,:;####i:,,,,,,,,,,,,,,,,,,,,,
;;;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;iiiii*****+#nnxMM+z++zz#z#+*;:,,,:::,,,,,,#zz#z+;::,,,,,,,,,,,,,,,,,,,.
;;;;;;;;:::::::::::::::::::::::::::::::::;;;;;;iiiii******++nxxWMx+#**+z#zz+*;:,,,,::,,,,,,*zzz#i:::,,,,,,,,,,,,,,,,,,,,
;;;;;;;;;;;:::::::::::::::::::::::::::::;;;;;;iiiii******+++xWWMxn+*i**#z#n#+i;,,,,:,,::::,+zzz*i:::;;::,,,,,,,,,,,,,,,,
;;;;;;;;;;;::::::::::::::::::::::::::::;;;;;;iiiii*++++**+++MMxMxz+iii**##n##*;:,,:,,,:;;;,*zz#+i*ii+i,,::,,,,,,,,,,,,,,
;;;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;iiii*###+ii++++#nnnz#++*i*iii##zz+i;:,::,,,:+#::;:;***;,+*::::,,,,,,,,,,,,,,
;;;;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;iiii#zz+i;;;i*#zzz###++***iii*+nxz+;:::;i*,,;+i.``.;+i:,*+:,:::,,,,,,,,,,,,,
;;;;;;;;;;;;;;;;;;:::::::::::::::::::;;;;;iiiii*zz#*i;::;i+#z#+##+++**iii;*xMxz*;::::*+i*:,.```.***:*:,,::::,,,,,,,,,,,,
;;;;;;;;;;;;;;;;;;;;:::::::::::::::::;;;;;iiiii#zz+i;:::;i+z#+###++++***ii;+WMx#*;::;i+#,..`````,i#i:,:::::::,,,,,,,,,,,
;;;;;;::::;;;;;;;;;;;;::::::::::::::;;;;;iiiii*nn#*;:::;;*########++++**iii;*xMx#;::i++;`..``````:i::;;,::::::,,,,,,,,,,
::::::::::::::;;;;;;;;;;;;;;;;;::::;;;;;iiiiii*nn#*;,,:;i*+#######+++++*iiiii;*zz*::+z;..,:iiiiii;:*i:,:::::::,,,,,,,,,,
,,,::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;iiiiii*nn#i:::;ii*++######+++++*ii*ii;;;;ii****i;+#+**ii;;;:::;;iii;;;:::,,,,,,,
,,,,,::::::::::;;;;;;;;iiiiiiiiiiiiiiiiiiiiii*+nn#*;:;i**+++##znzz###+++**ii;;;;;;;;iiiii*+*i;;::::,;;iii;;;;;;;;;:,,,,,
,,,,:,:::::::::;;;;;;;;iiiiiiiiiiiiiiii*iiii***nn+;,;i*++#z+#zz#z###zz#+*ii;;:::::;;;;;;;;;;:::,,,,,:;;;::::::::::::,,,,
,,,,:::::::::::;;;;;;;iiiiiiiiiiii************+nn*:,:*####++##zzzz#####+*i;;;::::::::::;;::,,,,,,,,,:::::::,,,,,::::,,,,
,,,,,::::::::;;;;;;;;iiiiiiiii*********++++++##xn*:,:*znz#++#zzzz++++##+ii;;;:::,,,::::::::,,,,,,,,,,,,,,:,,,,,,,,,:,,,,
,,,,::::::::;;;;;;;;iiiiiiiii*******+++++######xn*::;+#z#+++#z#++++++##+*i;;;:::,,,::::::::,,,,,,,,..,,,,,,,,,,,,,,::,,,
,,,,:::::::;;;;;;;;;iiiiiii*****+++++++#######zxn+;;*##z#++#zz#+++***+##**i;;::,,,,,:::::::,,,,,,,..,,,,,,,,,,,,,,,:,,,,
,,,,::::::;;;;;;;;;i;iiiiii****+++++++####zzzzzxx#**+#zz#**#zz#+++**ii*#+*i;;:::,,,,,:::::::::,:,``.,,,,,,,,,,,,,,,:,,,,
,,:::::::;;;;;;;;;ii;iiiiii****+++++#####zzzzzzxMnz##zz#+**#zz#++++*i;i+#+*i;;:::,,,,,::::::::,.``.,,,,,,,,,,,,,,,::,,,,
;;:;;;;i**iii;i;;iiii;iiiii***++++++#####zzzzzzxMxnzzzz#*ii+zz#+++*i;;;*#+*i;;::::,,,,,::::,.```.,,,,,,,,,,,,,,,::;:,,,,
###++**+##*+***i*+++*iiiii****++++######zzzzzzzxxxnzznz+i;i+zz#+++*i;::i##+i;;:::::,,,,,,.` `.,,,,::,,,,,::::::;::,:,,,,
znxnxxxnxxz###z##+##+iiiii****+++######zzzzznnnnxxnznn#+i;i+zz##++*i;::i##+i;:::::,,,.````,,::::::::::::;;;iiii:,:::::::
zznM@WW@@@Mxnxnnxxzz#*iii****++++######zzzzznnnnxxnznz#*;;i+zz##+**i;::*zz+i;::::,.```.,:;;;;;;;iiiii;;;:;*i;;::::::::::
zzMMWWxWW@@WnxMxMMxxz*ii*****++++######zzzzznnnnxxnnnz+*;;i+zzz#**ii;::*z#*i:,.`.,`.,::;;ii**i;::::,.`....:;::::::::::::
nznMxnznnxMWMxxMWMMnz*i******+++######zzzzznnnnnxxnnzz#*;;i#zz#+*iii;;;*#i::,...,,,,,::;i**;:,,....```````.:::::::::::::
xnnnxzz##nxnxxMMWWWn#********+++######zzzzznnnnnxxnnz##*i;;+zz#*iii;;;*;#;:::::,,,,,,::iii:,.,....`````````,::::::::::::
nnzz#+#+znnxxxxxMWWx+******++++#######zzzzznnnnnxxnnn#++i;;*+*i;:,,,:;i::ii::,,,,,,,::i#i;,,.....```` ```  .,,::::::::::
z###**++#nxnnnnxMWWW#******+++########zzzznnnnnnnzz#++*+::::::;;;;iii**i:,,:::,,,,::;:*+;.,..``..```` ```  .,,::::::::::
#+*;:;*+#znz#nnxxxWW#*****++++#######zzzzznnnnnnnzz##++i,;;i*iiiiiiiii***:,...,,::::,;**,,.,..``````   ````.,,,:::::::::
+i,.,,;i*zzxnnnMxMMWz++***++++#######zzzzznnnnnnnz###++;,;iiiiiiii***i**ii;;:..``...:;+;,,,,,.....``   `` `.,,,:::::::::
,::,,,::i*+nxnnMxMxx#+++++++++#######zzzzznnnnnnnz#z+++::;ii*iiiiii****iii;;:::,,,,,:;i::,,,.....```````` ``,,,:::::::::
i*ii*i**i**+#nzxMnnn#+++++++++######zzzzznnnnnnnnzz#+++,:;ii*iiiiiii*iiii;;;:::::,,,,ii::,,.....```.````  ``,,,:::::::::
###+##z#++##+znznz#z++++++++++######zzzzznnnnnnxnzzz*+*:,:;i*;iiiii;;iiii;;;;:,,::,,:*:::,,......`..`````  `,,::::::::::
+#####zz#+##z*+z##+#+++++++++######zzzzznnnnnnnxnz#++**;:,,,,:;iiiiiiiiii;:::i:,:,,,i;:,,,,.........````` ``,,::::::::::
+#zznnznnzzz#+i***+#+++++++++######zzzznnnnnnnxxn##zz#+****+i,,,:;iiiiii;;::::;:,:,,;;:,,.,,,,.....`````` `.,,::::::::::
##znnnnxMxzzz#**i*+#++++++++#####zzzzzznnnnnnxxnznnz#**i;:i+z#*;:,,:;ii;;;::::,:::,,ii:,..,,,,.....`````` `.,,::::::::::
zxxxxnnxxxnn#n##+#+#+++++++######zzzzznnnnnxxxxxxnnn#**i::;#z#+iii;:,.:ii;::::::::,ii;;,.,,,,......`````` `.,,::::::::::
W@@WMMnxMMMMnzz######++++######zzzzzzznnnnnxxxxxxnnn#**;::;#z#+*iii;;;:.,:;:::,:,:;*i;:,.,,,........```````.,:::::::::::
@@@@@@MMxxxxnzzzz############zzzzzzzznnnnnxxxxxxxnnn#*i;::;#z#+*iii;;;:;:..,:::::i*;:::,,,,,.,........``` `.,,::::::::::
@@@@#@@@Wxxnxnznzzz##########zzzzzzznnnnnnxxxxxxxxxn#+i;::;#z##+*iii;;:::::,`.,,;i;;:::,:,.,..........`````.,,::::::::::
WMWW@@##@WMMMMnnzzzz########z#zzzzzznnnnnxxxxxxxxxxn#+*;::;#z##+*iii;;::::,,,,.`;;::,:::,..,,........``````.,,::::::::::
MMxMW@@WW@@@@WMnnzzzz#####zzzzzzzzzznnnnnxxxxxxxxxxn#+*;::;#nz#+**ii;;::::,,,,:*i::::::,.,,,........```````.,,::::::::::
xxMWMMMxnxW###WMnznzzzzzzzzzzzzzzzznnnnnxxxxxxxxxxnz#+*;:::#nz#+**ii;;:::::,::;+;:::;::,,,,,.......````````.,,::::::::::
nnxxnzzzxxx@@#@WxnnzzzzzzzzzzzzzzznnnnnxxxxxxxMxxxnz#+*;::;znz#+**ii;;::::::::*i:;;;:,:,,,,......``````````.,::::::::;;;
nnxxz#zznxxx@@@WxnnnzzzzzzzzzzzznnnnnnnxxxxxxxMxxxnz#*i;::;znz++**ii;;::::::::#;;;;::,:,:,.......``````````.,:::::::;;;;
z#nzz##znxMxMWMMnnnnzzzzzzzzzzznnnnnnnnxxxxxxxMxxxnz+*i;::izn#+**iii;;:::::::;zii;:::::,........````````````,::::::;;;;;
z#n###znxMWMMMMxnxnnnnnzzzzznnnnnnnnnnxxxxxxxxMxxnz#+*i;:;*znz+**iii;:::::::;*#*;:::;::,.......````````````.,::::::;;;;;
###++++#nMWWWWMxnxxnnnnnnnnnnnnnnnnnnnxxxxxxxMMxxnz#+*i;;;+nnz+**ii;;;::::::;##i::::::,.........`````````.`.,::::::;;;;;
z+ii;i**#MWWWMMxnxxxnnnnnnnnnnnnzz##++#znxxxxMxnzz#+**i;;i#nnz#+*ii;;;:::::::n*;;:::::,........`````````....:::::::;;;;;
i;;;;;ii+nWWWMxxnxxxxnnnnnnnnnzz##++**iii*+nnnzz##++*ii;;*znnz#+**ii;;::::::;zii;;;;:,,............`````....:::::;;;;;;;
;;;;i+**#znxMMnnnMMxxxxxxnnnnzzz#++**iiii;ii*+####++*iiii#nxnz#+**iii;;;:::::#i;;;;;:,,....,.....```````....::;;;;;;;;;;
*ii*+###zxxnnnxxzMMMxxxxxxxz#+**+++*iii;;;;;;;i+####+***+zxnz#++**iii;;;;;:;;*i;;;;:::,....,....````````.`..::;;;;;;;;;;
#+###nnznxxxzznnzxMMMxxxnnzzz#++*:**ii;;:::::;;ii*++++++#zz###++****ii;;;;;;;i*i;;;;:,,..,.......`..````.`..:;;;;;;;;;;;
nznnnnxxxMMMxnzzzxWMxz#++++*++++#;,i;;;;::::::;;i*++##zzzz###++*****iiii;;;;;i+ii;;::::,.,.......`.`````....;;;;;;;;;;;i
xnxxnxxWWMMxxMxxnnMn##++++***ii**+ii;:;:::,,::;i*++#znnzz#++**iiiiiii;;;;;;;;i#ii;;::,,,.,........``.````..,;;;;;;;;;iii
xMWWMMWWWMxMMMMMxnzz##+++**iii;;;i+*i;,::,,,::;i+#znnnz#++**ii;;;;;;;;;;;;;;;;#*i;:,,,:,..........`.````...,;;;;;;;;;iii
xMMMWW@WWWxMWMMMnzz###++**ii;;;;;;;i+i;;.,,,:;i+#znnz##+**ii;;;;;:::::::::::;;+*i:,,,,:,.............````..,;;;;iiiiiiii
xMWWWWWWWxxMWMMnzzz##+++**ii;;;;::::;+#*:,::;i*#znzz##+i;;;:::::::::::,,,,,,::i*i:,,,,,,..,,,,,.........`..:;;;iiiiiiiii
W@W@@@@@@WWWWMnnzzz#+++**ii;;:::::,,::*n;:;;;;;;iiii;:,,,..........,,,,,,,,,,,,:i:,,,,,,..,,..............,:;;iiiiiiiiii
W@@@@@@@@@@@Wnnnzz##+++**ii;;::::,,,,,:z;:iiii;i;;:;:;;::,,,::::,,,,,,.....,,,,,::,,,,,,.,.....,.,,.``....,:iiiiiiiiiii*
@@#@######@Wnnnzzz##+++**ii;;:::,,,,,,,+;:****+i;i***+*****iiiiiiiiii;;:,.``.,,,,:,,.,,,,......,,,,......,,;iiiiiiiiiii*
+#W@@####@Wxxnnzzz##++***i;;:::,,,,,,,,*;;i**+*i*##++*****iiiiiiiiiii;i;;;:,...,,,,,,:,,.....,,,:,,,...,,,,;iiiiiiiii***
+###zznWMxxxxnnzz##+++***i;;:::,,,,,,,,i:;*++**#z#+++***iiiii;;;;;;;;;;;;;;;:,.,,,,::,,,...,.,,,,,,,,,,,,,:iiiiiiiii****
#####nnnxxxxnnnzz##+++**ii;;::,,,,,,,,,i:;++++nnz#++**iiiiiii;;;;;;;;;;;;::::::,,,,:,,,,.,.,,,,,,,,,,,,,,::iiiiiii******
##zznxxxxxxxnnnzz##+++**ii;;::,,,,,,,,:i;i+#+nnz#++****iii;;;;;;;;;;;;::::::::::::::,,,,,,,,,,,,,,,,,,,,::;iiiii********
nxxxxxxxxxxxnnzzz##+++**ii;;::,,,,,,,::i;*##znnz#++**iiii;;;;;;;;;:::::::::::::::;;:,,,,,,,,,,,,,,,,,,::::;*************
xxxxxxxxxxxxnnzz###+++**ii;:::,,,,,,,:;*;+z#xnzz#+***iii;;;;;;;;;::::::::::::::::::;:,,,,,,,,,,,,,,,,,,,::i***********++
xxxxxxxxxxxxnnzz##++++**ii;;::,,,,,,:;i*i#znxnz#++**iiii;;;;;;;::::::::::::::,,::::;;:,,,,,,,,:,,,:,,,,:::i***********++
xxxxxxxxxxxxnnzz###+++**ii;:::,,,,,,:;*+izzxxnz#++**iii;;;;;;;::::::::::::,,,,,,,::::;;:::,,,,:,,,:,,,:::;i*********++++
xxxxxxxxxxxxnnnz###+++**ii;::,,,,,,,:i++*nxxnnz#+***iii;;;;;;;::::::::::,,,,,,,,,,::::;;;:,,,,::,:::,::::;**++***+++++++
xxxxxxxxxxxxnnzz###+++**ii;::,,,,,,:;i+++nxxnz##+***iii;;;;;;;;::::::::,,,,,,,,,,,,,::::;;:,,,::::::::,:;;*+++++++++++++
xxxxxxxxxxxxnnzz####++**i;;::,,,,,,:;*#+#nxxnz##+**iiii;;;;;;:::::::::,,,,,,,,,,,,,,,::::;;;::::::::::::;i*++++++++++++#
xxxxxxxxxxxxnnzzz###+++*i;;::,,,,,,:i+z#zxxxnz#++**iii;;;;;;;:::::::::,,,,,,,,,,,,,,,,::::;;;:::::::::::;i+++++++++++++#
xxxxxxxxxxxxnnzzz####++*i;;::,,,,,:;i+n#nxxxnz#++**iii;;;;;;:::::::::,,,,,,,,,,,,,,,,,,::::;;;;;;:::;:::;i++++++++++++##
Mxxxxxxxxxxxnnnzz####++*ii;::,,,,,:;*#nzxxxxnz#++**iii;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,::::;;;i;;;:;;:;;i+#++++++######
Mxxxxxxxxxxxnnnzzz###++*i;;::,,,,::i*#nnxxxnnz#++**iii;;;;;:;:::::::,,,,,,,,,,,,,,,,,,,,,:::;;;;ii;;;;;;ii+#############
Mxxxxxxxxxxxnnnzzzz##++*i;;:,,,,::;i+znnxxxnnz#++**iii;;;;;;;::::::,,,,,,,,,,,,,,,,,,,,,,,:::::;;iii;;;ii*##############
MMxxxxxxxxxxnnnzzzz###+*i;:::,,:::;*#znxxxxnnz#++**iii;;;;;;;::::::,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;iiiii*+##############
WWxxxxxxxxxxnnnnzzz###+*i;:::::::;i*#nnxxxxnnz#++**iiii;;;;;;::::::,,,,,,,,,,,,,,,,,,,,,,,,,:::::;;;iiii*##############z
xMMxxxxxxxxxnnnnnzz###+*i;:::::::;i+#nznxxxnn##++**iiii;;;;;;;:::::,,,,,,,,,,,,.,,,,,,,,,,,,,:::::;;;ii**#z############z
nnxMxxxxxxxxxnnnnzzz##+*i;;:::::;;*+zx+nxxxnn##++**iiiii;;;;;;;::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::;;;iii+zzzz#######zzz
#znMMxxxxxxxxnnnnnzzz#+*i;;;:::;;i*#zx+nxxxnn##++**iiiii;;;;;;;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::;;;ii**zzzzzzzzzzzzz
###zxMxxxxxxxxnnnnzzz#+*ii;;;;;;;i*#nn+nxxxnnz#++**iiiii;;;;;;;::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::;;;iii*#zzzzzzzzzzz
##zznxMxxxxxxxxnnnnzz##+*ii;;;;;ii+#nz+nnxxnnz#+++**iiii;;;;;;:::::::,,:::::::,,,,,,,,,,,,,,,,,:::::::;;;iii*+zzzzzzzzzz
*+#z#znMMxxxxxxxnnnnzz#++*ii;;;ii*+zn#+znxxnnz##++**iiii;;;;;;:::::::::::::::::,,,,,,,,,,,,,,,,:,::::::;;;iii*+#zzzzzzzz
i**i*#zznMMxxxxnnnnnnzz#+**iiiii*+#zn++zzxxnnz##++**iiiii;;;;;;;:::::::::::::::,,,,,,,,,,,,,,,,,,,::::::;;;iii**+zzzzznn
+**iii*+#nxMxxxxnnnnnnzz#++******+#zn*+##xxnnzz#++***iiii;;;;;;;;;::::::::::::::::::::,,,,,,,,,,,,,,::::;;;;;ii**+zznnnn
+******ii*+zxMxxnnnnnnnnzz#+++++###zni++#nxnnzz#++****iiiii;;;;;;;;::::::::::::::::::::::,,,,,,,,,,,::::;;;;;;ii**+#znnn
i***+*++++*++#nxxnnnnnnnnnnzz###zzzzzi++##xxnnz#++****iiiiii;;;;;;;;;;;;;;;:::::::::::::::,,,,,,,,,,:::::;;;;;;ii**+#nnn
;;;i*++###z#####znxnnnnzznnxMMxxxxnnzi++++nxxnzz#+*****iiiiiiii;;;;;;;;;;;;;::::::::::::::,,,,::,,,,:::::::;;;;iii**+#nn
;iiii*ii*##++++###zzzzzzzzMW@@@@WMMxni++*++xxnnz#++******iiiiiiiiiiiiiii;;;;;;;:::::::::::::::::,,,,:::::::;;;;;iii*+#zn
:;;iiiiiiii**++*+###+###++##zxM@@#@Wx*++***#xxnzz#++*********iiiiiiiiiiiii;;;;;;;;::::::::::::::,:::::::::::;;;;iii**+##
:::::;;iiiiii**+***+###+###++#znxM@@M+++***iznnnzz#+++++************iiiiii;;;;;;;;;;::::::::::::::::::::::::;;;;iiii**+#
;;::::::::;;;;;***ii**++#########znMWx+*ii;*i+zznnnz##+++++++++*****iiiiiii;;;;;;;;;;;;;:::::::::::::::::::::;;;;iiii**+
;;;;;;:::::;;;;::;ii*iii*++##zz####znxz*;;;;ii#nznnxxnzz####+++++******iiiiii;;;;;;;;;;;;;;::::::::::::::::::;;;;iiii***
;;;;;;;;:;;;;;::;;:;iiiiiii*+#zz#z###zzz+ii;;;i*#znxxxxnnzz####++++*****iiiiiiii;;;;;;;;;;;;:::::::::::::::::;;;;iiiii**
i*;;;;;;;;;;;;:;:;;;;;;iiiiii**+##########*iii*+znxxxMMMxnzzz##+++++****iiiiiiiiiii;;;;;;;;;;;::::::::::::::::;;;iiiii**
iii;;;;::;;;;;;;;iiii*;;;;iiii*iii*+++##z###++#nnxxxxxxxMWMnzz###++++****i*iiiiiiiiii;;;;;;;;;;;::::::::::::::;;;iiiii**
;i*;i;;;:::;;;:;ii;;;;;i:::;;iiiiiii;ii+++++#++++#nxxxxnnxMMxnz###++++******iiiiiiiiiiii;;;;;;;;:::::::::::::::;;;iiiii*
i;ii;i;:;;;:,;;ii;i;;:;;;;;;;;;iiii;iiii****i**+++++#znxxnxxxxxnz###+++++*******iiiiiiiii;;;;;;;:::::::::::::::;;;;iiiii
;;::::;;;::;::;;i;i;:;:::;;;;;;;;;iiiiii;;;;;i***++++++#zxxxxxxMxnz##++++++*********iiiiiii;;;;;:::::::::::::::;;;;iiiii
,......::;;;::;;iiii;;;::;:;;::;;;;;;;i;;;:;;;iiii**+++++#znxMMMxMxnz###+++**********iiiiiii;;;;;;;:::::::::::::;;;;iiii
,....,..,:;:;:;;;iii;i;;:;:;::::,:;;;;;:;:;:;:::;i;iii*++#+++#nnxMMMxz##+++++***********iiiii;;;;;;;;;::::::::::;;;;;iii
:,...,::..,:;;;;;;;:;i;;::::::::,:,::;:::::::::;:;;;;iii*****++##zxMMMxn###++++**********iiiii;;;;;;;;;;;::::::;;;;;;;ii
:,.....:;,,.,:;;;;::::;;;;::,,,::,,,,::;:;::::::::::;:;;iiiiii**i+*##nMMMxnz##++++++++******iiii;;;;;;;;;;;;;;;;;;;;;iii
:,,,....,:;,,,::;::;;;;::;*i;:,,:,,,,,,:;;:::::::,::::;;;;;;;;;;;ii;ii++nxMMxnzz##+++++++*****iiiii;;;;;;;;;;;;;;;;;iiii
::::::,...:*;::::::;:;::;:::i*;:::,,:,,,:::;;;::,::,:::;::,,::;;::;;;::;;i+znxxxnnzz###++++****iiiiiiiii;iii;;;;;;;iiiii
:;;;;;:..,,:iii:::::;;::;:::::;i;;:::,:,,,,::,;;;;:,,,::,::,:,,:;:::::::::::;*#znnnnnzz###++++****iiiiiiiiiiiiiiiiiiiiii
***+*;,,.,::;:,;ii:;:::::;:;:,,,:;;:,,,,,,,::::,:***;::,,,,,,,,,,,::::::::::,,:;*++##nnnz###+++*****iiiiiiiiiiiiiiiiii**
iii;::,::,:ii:.,:i*i;:::;,::,,,,::;;::,,,,,::;:,:;;;:ii;,,,,,,,,,,,::::,:,:,,,,,,::;i**++#####+++++*********iiiiii******
;;;:;;;;::;ii;,.,:;i*;;::,:,:,,::::,,:,,,,,,:::::;;:,::i;;:,,,,,,,,:,,,,,,,,,,,,,,,,::;iiii;;ii*#z###++++++*************
;;;;;;;;;;:;ii:,,:::iii;::;:::::;.,:,.,::,.,:,:;:;;:,::,,::;::,,,,,,,,,,,,,,,,,,,,,,,.,,:;;;;::::;*#######++++++++++++++
++i;;;i;;;:;;i;:,,,::;ii;::::;;::.,:,,,,:,:,:,:i::;::::,:,,.;i;,..,,,,,,,,,,,,,.,,,,.,,,..,:::,:,,:::;;;;;;;*++#####++++
**+#*;;i;;:;;iii;,,,::;ii;;:;::;:,:,,,,,,,::::,,;,::::::,:.,,,,::,,,..,,,:,........,,,,.....,,::,,,,,,,:::::,:::;*#z####
ii**+#i;;;;:;iiii;:,:;;;;:;:::::::,,,,.,,,,,,::,,.,:::::,:,,,,.,,,:,,...,,,,,......,.,........,,,,,,,,,,,::::,,,:::;*znn
iii**+++i;;;;;iiii;:::;ii;::::::::,,,,,,,,,.,,:,,,,:;:::,:.,,.,.:.,::,.....,..,,.,,,,,....,......,,,,,,,,,:::::,,,,:::iz
iiiii**+##+*i;;iiiii;::::i;;::::::,,,:,,,,,..,,.,,,:;:::::.,,,..,....,,.......,,,,,,,.,,..,.,,.....,,,,,,,,,,::::,,,,:::
;iiiiii**++#z+;iiiii;;;;,,:;;:::::::::,,,,........,:;;::::,,,,,...,....,,,,...,,.,,,,,,,,,,,.,.,.....,,,,,,,,,,:::::,,:;
;;;;iiii**++#z#iiiiiii;;:::,,:;;::::::::,,...,...,:,,::;:,.,,,:,.,.,,....,,,.....,,,.,.,.,,,,,.........,,,,,,,,,::::::::
;;;;iiiii**++#zz*iiiii;;;:::,,,,,::::::;;;,,.....,,,,,,,::,,,,:,,,,.,,,.,.,,,,,.,,,,...,,,..,,,,,,...,,.,,,,:,,,,,,::;::
;;;;iiiiii**++##z*iiiiiii;:::,,,,.,,::::;ii;,,...,.,,:,,,,:::,,:,,,,.,:,,..,......,,..,,,,.,.,,,,,..,,,,,..,,,::,,,,:::;