i;;;;;;;:::::::::,,,,,,,,,,i+#zxMMMxxxnzz#*****************+++#nWWWWMMW@WWW@WWMMMMWWWWWWM@@@xxxxxxnz####z####i.............,,,,,,,,,,:::::::::;;;;;;;i
;;;;;;;:::::::::,,,,,,,,,,,*+znxMxxxnzz##+iiiiiiiiiiiiiii****+++#nWWWWMMWWWW@WMMMMWWWWWMW@Wxxxxxnz##########++;.............,,,,,,,,,,:::::::::;;;;;;;
;;;;;;::::::::,,,,,,,,,,,.:+znxxnnnzz####*iiiiiiiiiiiiiiiiii***+++#xW@WWMWWWWWMMMMMWWWWW@@xxxxnz############++*,.............,,,,,,,,,,:::::::::;;;;;;
;;;;;::::::::,,,,,,,,,,,..i#nnnzz#z######*iiiiiiiiiiiiiiiiiiii***+++#xWWWMWWW@WMMMMWWWW@@Mnxnz#+############+++i...............,,,,,,,,,,::::::::;;;;;
;;;;;:::::::,,,,,,,,,,,..,+zzzz#++#######iiiiiiiiiiiiiiiiiiiiiii***++#zW@WWWWW@WMMMMWWW@@nnnz++++#########+##+++................,,,,,,,,,,:::::::;;;;;
;;;::::::::,,,,,,,,,,,...:zz###+*+#######iiiiiiiiiiiiiiiiiiiiiiiii**++##xWWWWWW@WMMMWMW@Mnz#+++++###############:................,,,,,,,,,,::::::::;;;
;;;::::::::,,,,,,,,,.....;n#++*i*++++++++;iiiiiiiiiiiiiiiiiiiiiiiii***+##zMWWWWW@WMMMMW@nz#+++++++++############*.`...............,,,,,,,,,,:::::::;;;
;;::::::::,,,,,,,,,......*n+**ii*+++++++*iiiiiiiiiiiiiiiiiiiiiiiiii***++###nMWWW@@WMMWWMz#+++++++++++#########zz#+.`...............,,,,,,,,,,:::::::;;
;::::::::,,,,,,,,,.......#n+*iii++++++++iiiiiiiiiiiiiiiiiiiiiiiiiii**++#zznnxWWWW@WWMWWxz+*****++++++++########zzz+.................,,,,,,,,,::::::::;
;:::::::,,,,,,,,,........+z*ii;*++++++++iiiiiiiiiiiiiiiiiiiii*ii****+znxMWMMMMMWWW@WWWWz#********++++++++########zz#,.`..............,,,,,,,,,::::::::
:::::::,,,,,,,,,.........;*ii;*++++++++*iiiiiiiiiiiiiiiiii*******+znxMMMMMMMMMWMMW@@WWMz+*********+++++++++#######zzz,`...............,,,,,,,,,:::::::
::::::,,,,,,,,,,.........:ii;i*+*+*++++iiiiiiiiiiiiiiii******++znxxxMMMMMMMMWMMMWMW@@Wx#************+++++++++######zzz:``..............,,,,,,,,,::::::
:::::,,,,,,,,,...........ii;******++++*iiiiiiiiiiiiii******+#znnxxxMMMMMMMMWWWWWWWMW@Wn+**************+++++++++++####zz:................,,,,,,,,,:::::
:::::,,,,,,,,,..........;i;*+*****+++*iiiiiiiiiiii******++znnnnxxxxxMMMMMWWWWWWWWWWWW@z+****************++++++++++######;``..............,,,,,,,,,::::
::::,,,,,,,,,..........,ii**+*****+++iiiiiiiiiii******++znnnnnnxxxxMMMWWWWWWMMMWWMxnzWz+*******************+++++++++#####;```............,,,,,,,,,,:::
::::,,,,,,,............;i++++*****+*;;iiiiiiii******++zxnnnnnxxxxMMMMWWMMMMMMMnz+**+#zn+*******i**************+++++++#####;.``............,,,,,,,,,:::
::,,,,,,,,,...........:*+++++******;;;iiiiiii*****++zn#znnnnnxxxMMMMMMMMMMMz+iiii****+##*****iiiiii**ii*********+++++++####;.``............,,,,,,,,:::
::,,,,,,,,............+++++++++***;;;;iiiiii*****+#nnznnnnnxxxxxMMMMMMMMn+i;iiii*******#+****iiiiiiiiiiiiii********+++++####i...............,,,,,,,,,:
:,,,,,,,,............;++++++++***;;;;iiiiii****++zxnnnnnnxxxxxMMMMMMMx#iiiiiiiii********#+***iiiiiiiiiiiiiiiii******++++++###i.`............,,,,,,,,,:
,,,,,,,,,............++++++++++i;;;;;iiiii****+#nxnnnnnxxxxxMMMMMMMz*;iiiiiiiiiii*******+#**iiiiiiiiiiiiiiiiiii******++++++###*.`............,,,,,,,,,
,,,,,,,,............i#++++++++i;;;;;iiiii****+#xnnnnnxxxxxMMMMMMM#i;iiiiiiiiiiiiiii******++**iiiiiiiiiiiiiiiiiii*******+++++###*.`............,,,,,,,,
,,,,,,,,...........,#+++++++*;;;;;;;iiii****+zxnnnnnxxxxxMMMMMMzi;iiiiiiiiiiiiii**********#+*iiiii;;;;iiiiiiiiiii*******++++++##*,.`...........,,,,,,,
,,,,,,,............*+#+#+++i;;;;;;;iiiii**++nxnnnnxxxxxMMMMMWni;iiiiiiiiiiiiiiii*********++#+*iiii;;;;;;iii;iiiiii*******++++++##+,`............,,,,,,
,,,,,,...........`:##+#++*iiiii;;i;iiii**++nxnnnxxxxxMMMMWWx*;iiiiiiiiiiiiiiiii**********+++#*iiii;;;;;;;;;;;;iiiii*******++++++##+.............,,,,,,
,,,,,,............*++++iiiiiiiiiiiiiii**++xxnnnxxxxxMMMWWx+;;iiiiiiiiiiiiiiiiiii*********+++##*iii;;;;;;;;;;;;;;iiii*******++++++##+............,,,,,,
,,,,,............:***iiiiiiiiiiiiiiiii**+xxnnnxxxxMMMWWM+;;iiiiiiiiiiiiiiiiiiii**********++++##*ii;;;;;;;;;;;;;;;iiii*******++++++##*............,,,,,
,,,,...........`.iiiiiiiiiiiiiiiiiiii**+nxnnxxxxxMMMWWni;iiiii;;;;iiiiiiiiiiii**********++++++z+iii;;;;;;;;;;;;;;iiiii*******++++++##*............,,,,
,,,,...........`:iiiiiiiiiiiiiiiiii***+nxxxxxxMMMMMWM+;iiii;;;;;i;iiiiiiiiiiii**********++++++##*iii;;;;;;;;;;;;;;iiiii******++++++###i...........,,,,
,,,...........`.iiiiiiiiiiiiiiiiii***+nMxxxxxxMMMMWxi;iii;;;;;;;;;;iiiiiiiiii**********++++++++z+*ii;;;;;;;;;;;;;iiiiii******+++++++###;...........,,,
,,,...........`:iiiiiiiii;;iiiiii***+zMxxxMMMMMMMWniiiii;;;;;;;;;;;iiiiiiii***********++++++++++z+*ii;;;;;;;;;;;;iiiiiii******++++++++##:`..........,,
,,.............iiiiiiiiii;iiiiiii**+zMMMxMMMMMMMWziiiii;;;;;;;;;;;iiiiiiii************+++++++##+##**i;;::;;;;;;;;iiiiiii******++++++++##+...........,,
,,..........``,iiiiiiiii;;iiiiii**+#MMMMMMMMMWMM#iiii;;;;;;;;;;;;;iiiiiii*************++++++++###z+*ii;::::;;;;;;iiiiiiii******++++++####+...........,
,...........``;iiiiiiii;;;iiiiii**#MMMMMMMMMMMM+iiii;;;;:::;;;;;;;;;iiii*************++++++++######+*ii;::::;;;;iiiiiiiii******++++++#####i..........,
,..........``.iiiiiiiii;;;;iiii**+xMMMMMMMMMMM+iiii;;;;::::::;;;;;;iiiii*************++++++++#####z+**i;::::;;iiiiiiiiiii******+++++++#####:.........,
...........``,*iiiiiii;;;;iiii**+zMMMMMMMMMWM+iii;;;;:::::::;;;;;;;iiiii************+++++++++#######+*ii;;::;;iiiiiiiiiii******+++++++######,.........
...........``;**iiiii;;::;;;ii**#MMMMMMMMMMM#iii;;;;:::,:::;;;;;;;;iiii**************+++++++++#####z#**ii;;;;;iiiiiiii********++++++++######+.........
..........``.***iiiii;;:::;ii**+xMMMMMMMMMW#iiii;;;:::,,,,:;;;;;;;iiiii*************+++++++++########+**ii;;;iiiiiiiii********+++++++########i........
..........``,**iiiiiii;;::;i**+nMMMMMMMMMM#iiii;;;;::,,,,:;;;;;;;;iiiii************++++++++++#######z#+*iii;;iiiiiiii*********+++++++#########,.......
.........```:*****iiii;;;;ii**#MMMMMMMMMMziiii;;;;:::,,,:;;;;i;;iiiiiii************+++++++++++#######z+**ii;;;iiiiiii********++++++++#########+.......
.........```;*****iiiiiiii***+xMM#izMMMMxiiiii;;;::::::::;;;;i;;iiiiii************++++++++++++#######z#+*iii;iiiiiiii********++++++++##########;......
.........```i*******iiiii***+#MMnii#MMMM*iiii;;;;;::::::;;;;;iiiiiiiii***********+++++++++++++#######zz+**iiiiiiiiii*********++++++++###########......
.........```**************+++nxMx*ixMMM*iiii;;;;;:::;;;;;;iiiiiiiiiii************+++++++++++++########z#+**iiiiiiiii*********++++++++##########z;.....
........```.************+++#+xxMxxxMMW#iiiii;;;;;;;;;;;;;iiiiiiiiiiii***********+++++++++++++#########z#+***iiiiiiii********+++++++++###########+.....
........```.*********+++++ii+MnxMMMMMxiiiiii;;;;;;;;;;;;;iiiiiiiiiii***********++++++++++++++#########zz#+***iiiii**********++++++++############z:....
.......````.********++++i;*#+MMMMMMMM*iiiiii;;;;;;;;;;iiiiiiiiiiiii************++++++++++++++#########zz#+****i*************++++++++#############*....
.......````.*******++##i:++**#xMMMMMziiiiiii;;;;;;;i;iiiiiiiiiii**************+++++++++++++++##########nz#++***************+++++++++##############,...
......``````******++#nxn+*iiii*nMMzn*iiiiiiii;;;;;;iiiiiiiiiii***************+++++++++++++++###########zz#++**************++++++++++#############z;...
......``````****++#zxMxM+iiiiii*zx;:*iiiiiiii;;;;iiiiiiiiiiii****************+++++++++++++++###########zzz#++*************+++++++++##############z+...
.....```````i***+#nMWxxniiiiiii**#i:iiiiiiiiiiiii;iiiiiiiiiii****************++++++++++++++############znz#++*************+++++++++###############z,..
.....```````;+++zxWWMnM+iiiiiii***i;iiiiiiiiiiiiiiiiiiiiiiii****************++++++++++++++#############znz##+*************+++++++++###############z;..
.....```````:+#zMMx#xzM*iiiiiii***i;iiiiiiiiiiiiiiiiiiiiiii****************+++++++++++++++#############znz##++************+++++++++###############z*..
.....```````.+nMWM+innxiiiiiiiii+zi;*iiiiiiiiiiiiiiiiiiiiii****************+++++++++++++++#############znzz#++************+++++++++##########z####z#..
.....````````+WWWM#+xxniiiiiiii*xn*;*iiiiiiiiiiiiiiiiiiiii****************+++++++++++++################znzz##+************+++++++++##########zz#zzzz..
.....```````.xWWWMMxMxniiiiiiiinx#**+*iiiiiiiiiiiiiiiiiiii***************++++++++++++++################znzz##++***********+++++++++#############zzzz:.
.....```````iWWWMMMMMMniiiiiiizxxz#n#**iiiiiiiiiiiiiiiiiii**************++++++++++++++#################znzz##++************++++++++#############zzzzi.
.....```````+WWMMMxMxxziiiii*zxxxxxM#+**iiiiiiiiiiiiiii****************++++++++++++++##################znzz###+************++++++++###########zzzzzz*.
.....```````#WMMMxM@#i#iiii+nxxxxxxxn#***iiiiiiiiiiii*****************+++++++++++++++##################znzz###+************++++++++###########zzzzzz+.
.....```````nMMMxM@M+i**ii#xxxnxxxxxM#+*******iiiiii*****************+++++++++++++++++#################nnzz###++********+++++++++++###########z#zzzz#.
.....``````.MMMxM@z*i*:i**Mxxn#iinxxMM#+***************************++++++++++++++++###################znnzz####+********+++++++++++##########zzzzzzz#.
....```````,MxxMM+i**i*i;*Mxxniii#xxxMM+**************************++++++++++++++++++##################znzzz####++*******+++++++++++###########zzzzzz#.
....```````;xxMn*iiiiii*++xxxx#**nxxxxMx++***********************++++++++++++++++#+################z##znzzz####++*******+++++++++++##########zzzzzzz#.
....```````iMx#iiiiiiiii*+#MxxxxxxxxxxxMn+**********************+++++++++++++++++####################zznzzz####+++**++*++++++++++++###########zzzzzz#.
....```````*x*iiiiiiiiii***xMxxxxxxxxxxMM#++********************++++++++++++++++#####################znnzzz####+++++++++++++++++++############zzzzzz#.
....```````i*iiiiiiiiiiiii**MMMxxxxxxxxMMM#++*****************++++++++++++++++#+###################z#znnzz#####+++++++++++++++++++############zzzzzz#.
....``````.iiiiiiiiiiiiiiiiizMMMxMMMxxxxMMM++++*************++++++++++++++++++####################zz#znzzz#####+++++++++++++++++++###########zzzzzzz#.
....``````;iii;;iiiiiiiiiiiiixMMMMMMMxxxMMMx+++++***********+++++++++++++++++######################z#nnzzz#####++++++++++++++++++#############zzzzzz#.
....`````,ii;;;;;;;;;iiiiiiii+WMMMMMMMxxxMMMn++++++****++**++++++++++++++++##+###################zzzznnzzz#######++++++++++++++++############zzzzzzz#.
....````.*i;;;;;;;;;;;iiiiiiiizWMMMMMMMxxMMMMn++++++*+*+++++++++++++++++++++#######################znnzzzzz######++++++++++++++++###########zzzzzzzz+.
....````;+*;;;;;;;;;;;;iiiiiiiixMMMMMMMMxMMMMWn#++++++++++++++++++++++++++++#######################znnzzzzz#######++++++++++++++###########zzzzzzzzz*.
....```.+++;;;;;;;;;;;;iiiiiiii*MMMMMMMMMMMMMMWz++++++++++++++++++++++++++#########################znzzzzz#########++++++++++++###########zzzzzzzzzzi.
....```i+++i;;;;;;;;;;;;;iiiiiii#MMMMMMMMMMMMMMWz++++++++++++++++++++++++#########################znnzzzzz#########++++++++++++############zzzzzzzzz;.
....``.++++*;;;;;;;;;;;;iiiiiiiiizMMMMMMMMMMMMMMWz+++++++++++++++++++++++#########################nnzzzzzz##########++++++++++#############zzzzzzzzn:.
....``;+++++;;;;;;;;;;;;iiiiiiiiiinMMMMMMMMMMMMMMWz#++++++++++++++++++###########################znnzzzzz###########+++++++++#############zzzzzzzzzz..
....``*+++++i;;;;;;;;;;;;;;iiiiiii*xMMMMMMMMMMMMMMWz##+++++++++++++++############################nnzzzzzz###########++++++#+###############zzzzzzzz#..
....`,++++++i;;;;;;;;;;;;;;iiiiiiii*xWMMMMMMMMMMMMMWn###++++++++++++#+##########################znnzzzzzz##############################z##zzzzzzzzz+..
....`i++++++*;;;;;;;;;;;;;;iiiiiiiii*xWMMMMMMMMMMMMWWx########+#++##############################nnnzzzzz################################zzzzzzzzzzz*..
.....+++++*+*;;;;;;;;;;;;;;iiiiiiiii**xWWMMMMMMMMMMMWWMz#######################################znnzzzzz################################zzzzzzzzzzzn;..
....,++++**++;;;;;;;;i;;;;iiiiiiiiii***xWWWMMMMMMMMMMWWMz#####################################znnnzzzzz################################zzzzzzzzzzzn...
....:++++**++;;;;;;;;ii;;iiiiiiiii**i***nWWMMMMMMMMMMMWWWn###################################znnnzzzzzz###############################zzzzzzzzzzzn#...
....;+++***++;;;;;;;iii;;iiiiiiii********nWWMMMMMMWMWWWWWWx##################################znnzzzzzzzz#############################zzzzzzzzzzzzni...
....i+++***++;;;;;;iiii;;iiiiiiiii********zWWMWWMWWMWWWWWWWMz###############################znnnzzzzzz###############################zzzzzzzzzzznz:...
....*+++**+++;;;;;iiiiiiiiiiiiiii**********zWWWWWWWMWWWWWWWWWxz############################znnnzzzzzz################################zzzzzzzzzzzn#....
....++++**++*;;i;iiiiiiiiiiiiiiii***********zWWWWWWMWWWWWWWWWWMz##########################zznnzzzzzz###############################zzzzzzzzzzzzzn+....
...,#+++++++*;iiiiiiiiiiiiiiiiii******++*****#MWWWWWWWWWWWWWWWWWn########################zznzzzzzzzz##############################zzzzzzzzzzzzznzi....
...:++++++++*iiiiiiiiiiiiiiiiiiii*****+++*****+xWWWWWWWWWWWWWWWWWMz#####################znnnzzzzzzz###############################zzzzzzzzzzzznnz:....
...i#+++++++iiiiiiiiiiiiiiiiiiiiii*****++++++**+zWWWWWWWWWWWWWWWWWWxz##################znnzzzzzzzzz###############################zzzzzzzzzzzznn#,....
...*#+++++++iiiiiiiiiiii*iiiiiii******+++++++++**#MWWWWWWWWWWWWWWWWWMnz###############zxnnzzzzzzzzz###############################zzzzzzzzzzznnz#.....
...*###+++#+iiiiiiiiiiii*iiiiiii******+++++++++++++nWWWWWWWWWWWWWWWWW@Mn############znxxnzzzzzzzzz#############################zzzzzzzzzzzzznnnz+.....
...+####++#*iiiiiiiiiiii+iiiiii*******++++++++++++++#MWWWWWWWWWWWWWW@@@@Wn#########nxxxxxnzzzzzzzzz############################zzzzzzzzzzzznnnzz+.....
...########*iiiiiiiiiiii#*iii********+++++++++++++++++zMWWWWWWWWWWW@@@WMMWMnz###+nxxxxxxxnzzzzzzzzzz##########################zzzzzzzzzzznnnnzzz+.....
..,########iiiiiiiiiiiii#*iii*******++++++++++++++++++++nWWWWWWWWW@@WxMMMMWMWx#x;xxxxxxxxxnzzzzzzzzzzzzzz####################zzzzzzzzzzznnnnnnnz+.....
..,#######+iii**iiii****#+**i*******+++++++++++++++++++++#xWWWWWW@@WMWMMMWWMWW#++xxxxxxxxxxnzzzzzzzzzzzzzz##################zzzzzzzzzzznnnnnnnzz#.....
..,#######+iii****i*****#+*******+*++++++++++++###+++#+++++#xWWW@@WWWMMMMWMWWW#izxxxxxxxxnnnnnzzzzzzzzzzzz##################zzzzzzzzznnnnnnnzzzzz,....
..:#######*************##+*******++++++++++##+##########+++++#xW@WWWMMMMWMMWWn*:xxxxxxnnnnnnnnnzzzzzzzzzz####################zzzzzznnnnnnzzzzzzzn:....
..:#######i************###*******++++++++####################++zxWWWMMMWMMWWx+::xxxxnnnnnnnnnnnnnzzzzzzzz###################zzzzznnnnnzzzzzzzzzzn;....
..,z#####+i***********+z#+******++++++++########################xWWWWMWWMWWM#;`ixxnnnnnnnnnnnnnnnnnzzzzzz################zzzznnnnnnnzzzzzzzzzzzzn*....
..,z#####*************#zz+******++++++++#########################znnxMWMWWM#i``+xnnnnnnnnnnnnzzzznnnnzzzzzzz##zzzzzzzzzzzznnnnnzzzzzzzzzzzzzzzzzx+....
,.,z#####************+zz#+******+++++#+#############################zzMMxnz*```#xnnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnzzzzzzzzzzzzzzzzzzzzznx#....
,.,z####+************#zzz+*****++++++################################zzzzz+.```znnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxz....
,.,#####************+#zzz+****+++++++###################################zzi````znnnnnnnnnzzzzzzzzzz########zzzzzzzzzzzzzzzzzz#z##zzzzzzzzzzzzzznxn,..,
...#zzz+************##zzz****++++++#####################################zz+````znnnnnnnnzzzzzzzzzzz###############################zzzzzzzzzzzzznxn:..,
.,.+zz#************+zzzzz***+++++++######################################z+````znnnnnnnzzzzzzzzzz#################################zzzzzzzzzzzzzxxn:.,,
,..*z#*************+zzzz#**+++++++#######################################z#````znnnnnnzzzzzzzzzz###################################zzzzzzzzzzzzxxn;.,,
,.,*#+************+zzzzz#++++++++##########################################````znnnnnzzzzzzzzzz####################################zzzzzzzzzzzzxxn;,,,
,,.i+*************zzzzzz#+++++++##########################################+````znnnnnnzzzzzzzz#####################################zzzzzzzzzzzzxxni,,,
,,.;***********+*#zzzzzz+++++++###########################################*````znnnnnzzzzzzzz######################################zzzzzzzzzzzzxxni,,,
,,.:**+++*++***++zzzzzzz+++++++###########################################i````#nnnnnzzzzzzz############+++#########################zzzzzzzzzzzxxni,,,
,,,,*+++++++++*+zzzzzzzz+++++++##########################################z;````#nnnzzzzzzzzz############+++++++++#++################zzzzzzzzzzzxxni,,,
,,,,*+++++++++*#zzzzzzz#++++++############################z#############zz,````#znzzzzzzzzz###########+++++++++++++++################zzzzzzzzznxxx*,,,
,,,,i+++++++++zzzzzzzzz++++++#+###########################zz###########zzz`````+zzzzzzzzzzz##########++*****+++++++++++++##############zzzzzzzzxxx*,,,
,,,,;*+++++++zzzzzzzzzz++++++#############################zzz#########zzz#`````+zzzzzzzzzz##########+********+*++++++++++++############zzzzzzzzxxx*,,,
,,,,:*+++++#zzzzzzzzzz#++++++############################zzzz#########zzzi`````*zzzzzzzzz##########++*************++++++++++++##########zzzzzzzxxxi,,,
,,,,,i+++#zzzzzzzzzzzz++++++#############################zzzzz#####zzzzzz,`````inzzzzzzz###########+****************+++++++++++###########zzzzzxxxi,,,
::,,,*+#znzzzzzzzzzzz#+++++##############################zzzzzzzzzzzzzzzz``````:nzzzzzz###########++********************+++++++###########zzzzzxxx:,,:
::,,:#znnnnnnnzzzzzzz+++++#############################zzzzzzzzzzzzzzzzz*``````.nnzzzz############+*********************+++++++++#########zzzzznxn:,::
:::,ix#znnnnnnnnnnnz#+++++#############################zzzzzzzzzzzzzzzzz,```````znzzzz###########+++*******************++++++++++##########zzzznxz,,::
::::#Mnznnnnnnnnnnzz+++++##############################zzzzzzzzzzzzzzzz+````````+nzzz############+++*******************++++++++++#########zzzzznx#,:::
::::nMznnnnnnnnnnnz+++++#############################zzzzzzzzzzzzzzzzzz:````````;nnzz###########++++*******************+++++++++++########zzzzznxi::::
:::ixxzznnnnnnnnnn###+##############################z#zzzzzzzzzzzzzzzz#``````````nnzz###########++++*******************+++++++++++#######zzzzzznz:::::
:::#xxx#xnzznnnnn###################################zzzzzzzzzzzzzzzzzz:``````````*nzz##########+++++******************++++++++++++#######zzzznnn*:::::
::;zxxx##Mnn#znn####################################zzzzzzzzzzzzzzzzz#```````````.zzzz#########++++++*****************++++++++++++######zzzznnnz;:::::
::inxxnz#xMxn#z#################zz#################zzzzzzzzzzzzzzzzzn,````````````*nnzz#########+++++******************++++++++++#####zzzznnnnxn::::::
::*nxnzn#nMWnz+################zzzz################zzzzzzzzzzzzzzznni`````````````ixnnzz########++++++****************++++++++++#####zzzzznnxMxn;:::::
;;+nxzxnz#xMxz+##############zzzzzzz#########z#z##zzzzzzzzzzzzzzznn#.`````````````;xxnnzz#######+++++++***************+++++++++######zzznnnMMMxxi::::;
;;znnnxnz#zxxMz#z############zzzzzzz####z##z#zzzzzzzzzzzzzzzzzzznnn:``````````````:xxxxnnzz######+++++++*************+++++++++######zzzznxMMMxxx+:::;;
;iznzxxnn##xxxM#zzzz########zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnn*```````````````,nxxxxxnnzz#####++++++++**********+++++++++######zzznxMMMMMxxx#;:;;;
;*nnzxxxxz#nxxxxxzzzzz##zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnz,```````````````.#nxxxxxxxnzz####+++++++++*****+++++++++++#######zzxMMMMMMMxxxzi;;;;
;+nnzxxxnnznnxxxMMnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnn*`````````````````*nnnxxxxxxxxnz#####++++++++++++++++++++#######znMMMMMMMMMMxxxni;;;;
i#nnzxxnnnnnnxxxxMMMnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnx;`````````````````iznnnxxxxxxxxxxnzz###++++++++++++++++######znxMMMxxMMMMMMMxxxn*;;;;
iznnzxnnnnnnxxxxxxxMMxnzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnxMx:`````````````````:zznnnnxxxxxnnnxxxxnz#++++++++++++######znxMMxxxxxMMMMMMMxxxxn+;;;;
*nnnnnnnnnnxxxxxxxxxxMWxnzzzznznnzznzzznnnnnnnnnnnnnnnnnnnnnxMMMx,`````````````````.+zznnnxxxxnnnnnnnnxxxxxnzzz#zzzzzznnxxxxxxxxxxxxxMMMMMMMxxxxn+;;;;
+nnnnznnxxxxxxxxxxxxxxxMMxnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnxMMMMMn.`````````````````.*zznnnnxxxnnnnnnnnzznnnnnxxxxxxxxxxxnnxxxxxxxxxxxMMMMMMMxxxxn+;;;i