Mxxxxxxxxxxxxnnnnnnnnnnzzzzzzzzzzzzzzz####################+#+++++++++++++++++++++++++++++##########################zzzzzzzzzzzzzznnnnnnnnnnnnnxxxxxxxx
xxxxxxxxxxxxnnnnnnnnnnzzzzzzzzzzzzz######################++++++++++++++++++++++++++++++++++++++#######################zzzzzzzzzzzzznnnnnnnnnnnnxxxxxxx
xxxxxxxxxxnnnnnnnnnnzzzzzzzzzzzzz###################++++++++++++++++znnnnnnnnnnnnnnnn++++++++++++++++###################zzzzzzzzzzzzznnnnnnnnnnnnnxxxx
xxxxxxxxnnnnnnnnnnnzzzzzzzzzzz###################+++++++++++++++++++MMWWWWWWWWWWWWWWW#+++++++++++++++++++##################zzzzzzzzzzzzznnnnnnnnnnnnxx
xxxxxxnnnnnnnnnnnzzzzzzzzzzz################++++++++++++++++++++++++MMMMWWWWWWWWMMMWW#+++++++++++++++++++++++#################zzzzzzzzzzzzznnnnnnnnnnn
xxxxxnnnnnnnnnnzzzzzzzzzz##############+++++++++++++++++++++++++++*+MMMWWWWWWWWWWWWWW#*++++++++++++++++++++++++++#################zzzzzzzzzzznnnnnnnnn
xxxnnnnnnnnnnzzzzzzzzzzz#############++++++++++++++++++++***********MMMWWWWWWWWWWWWWWz*********+++++++++++++++++++++################zzzzzzzzzzzznnnnnn
nnnnnnnnnnnzzzzzzzzzz#############++++++++++++++++++****************MMMMWWMWWWWWWWMMMz***************++++++++++++++++++###############zzzzzzzzzzzznnnn
nnnnnnnnnnzzzzzzzzz############++++++++++++++++++*******************MMMWWWMWWWWWWWMWMn********************++++++++++++++++###############zzzzzzzzzzznn
nnnnnnnnzzzzzzzzzz###########++++++++++++++++***********************MMMMWWMWWWWWWWWWMn***********************+++++++++++++++###############zzzzzzzzzzz
nnnnnnzzzzzzzzzzz##########++++++++++++++**************************+MMMMWWMMWWWWWWWWMx*ii***********************+++++++++++++++##############zzzzzzzzz
nnnnnzzzzzzzzzz##########++++++++++++++**********************iiiiii+MMMMWMWMWWWWWWWWMxiiiiiiiiii*******************+++++++++++++++#############zzzzzzz
nnnnzzzzzzzzz##########+++++++++++++*******************iiiiiiiiiiii+MMMWWWMWWWWWWWWWWMiiiiiiiiiiiiiii*****************++++++++++++++#+###########zzzzz
nnzzzzzzzzzz#########+++++++++++++****************iiiiiiiiiiiiiiiii+MMMMMWMMWWWWWWWWWW*iiiiiiiiiiiiiiiii*****************++++++++++++++###########zzzz
zzzzzzzzzz#########++++++++++++***************iiiiiiiiiiiiiiiiiiiii#MMMMMMMMMWWWWWWWWW*iiiiiiiiiiiiiiiiiiiii****************+++++++++++++###########z#
zzzzzzzzz#########+++++++++****************iiiiiiiiiiiiiiiiiiiiiiii#MMMMMMMMMMMMWWWMWW+iiiiiiiiiiiiiiiiiiiiiiiii**************+++++++++++++###########
zzzzzzz##########++++++++++************iiiiiiiiiiiiiiiiiiiiiiiiiiii#MMMMMMMMMMMMMMMMMM+iiiiiiiiiiiiiiiiiiiiiiiiii***************++++++++++++##########
zzzzz##########++++++++++************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii#MMMMMMMMMMMMMMMMMM#iiii;;;;ii;iiiiiiiiiiiiiiiiiii*************++++++++++++########
zzzz#########++++++++++************iiiiiiiiiiiiiiiiiiiii;;iiiiiiiii#MxMMMMMMMMMMMMMMMM#;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiii*************++++++++++++######
zzz#########++++++++++**********iiiiiiiiiiiiiiii;;;;;;;;;;;;;;;;;iizMxMMMMMMMMMMMMMMMMz;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiii*************+++++++++++#####
###########+++++++++**********iiiiiiiiiiiiiii;;;;;;;;;;;;;;;;;;;;;;zMxxMMMxxMMMMMMMMMMn;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii************++++++++++++###
#########+++++++++***********iiiiiiiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;;zxxxMMxxxxMMMMMMMMMn;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii*************++++++++++##
########+++++++++***********iiiiiiiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;;;zMxxxMxxxxMMMMMMMMMx;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii************++++++++++
#######+++++++++*********iiiiiiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;nxxxxMxxxxMxxMMMxxMx;;;:::::::::::;;;;;;;;;;;;;;;;iiiiiiiiiiiii***********+++++++++
#####+++++++++*********iiiiiiiiiiii;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;nxxxxMxxxxMxxMMMxMxx;:::::::::::::::::;;;;;;;;;;;;;;iiiiiiiiiiiii**********++++++++
####+++++++++*********iiiiiiiiiii;;;;;;;;;;;;;;;;:::::::::::::::;;;nxxxxMxxxxMxxMMMMMMMi::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiiiiii**********+++++++
##+++++++++*********iiiiiiiiiiii;;;;;;;;;;;;;::::::::::::::::::::::nxxxxxxnxxxxxMMMMxMxi::::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiiiii**********++++++
++++++++++*********iiiiiiiiiii;;;;;;;;;;;;:::::::::::::::::::::::::nxxxxxxnnxxxxMMMxxxx*:::::::::::::::::::::::::;;;;;;;;;;;iiiiiiiiiiii*********+++++
+++++++++*********iiiiiiiiii;;;;;;;;;;;;:::::::::::::::::::::::::::nxxxxxxnnxxxxMMMMxxx+::::::::::::::::::::::::::;;;;;;;;;;;;iiiiiiiiiii**********+++
++++++++*********iiiiiiiiii;;;;;;;;;;::::::::::::::::::::::::::::::xxxxxxxnnxxxxMMMMxxx+:,:::::,:::::::::::::::::::;;;;;;;;;;;;iiiiiiiiiiii*********++
+++++++*********iiiiiiiii;;;;;;;;;;;:::::::::::::::::::::::::::::::xxxxxxxnnxxnxMMMMxxx#,,,,,,,,,,,,,:::::::::::::::::;;;;;;;;;;;iiiiiiiiiii********+*
++++++*********iiiiiiiii;;;;;;;;;;:;::::::::::::::::::::,::::::::::xxxnxxMnnnxnxxMMMxxxz,,,,,,,,,,,,,,,,:::::::::::::::;:;;;;;;;;iiiiiiiiiiii*********
+++++*********iiiiiiiiiiiiii;ii;i;;;;;;;;;;;;;;;;;;;;;;;;;;i;;;;i;ixxxnxxMnnxxxxxMMMxxxn;;;;;;:::::::::::::::::::::::;;;*;;;;;;;;;;;iiiiiiiii*********
++++*********iiii+xxxxxxxxxx##nnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzz###zzzz#########zzzzzzzznnnnnnnnnnnnxxnnnnxnnnnnnnxnn+znnznnxxxnnnnnnnniiiiii*******
+++*********iiiiinxMMMxxMz##nz+#xxxxxxnnnnnnnznnnnzznnnnznnnzzzznzzzzzzzzzzz###zzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnxxxxx#+xz#znzxxxxxxxMMxM+iiiii*******
++********iiiiii*MMMMMMMnzznnn++#MMxxMxxxxnnnnnnnnnnnnnzzznnzznzzznnnnnznnnnzzzzzzzzzzzzzzznnnnznnnnnnnnnnnnnnnnnxxxxz++##zzznxMMMMxMMMMMniiiiii******
*********iiiiiii#MMMMMMMnzz##z#++nMMMMMxxxnnnnnnnnnnnnnnnnnnnnnnnnnnzzznnnnnnnzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn++#+z####xxxxxxxxxMxM*iiiiii*****
********iiiiiiiinMMxMMMMxn#zzzz#++xMMxxxxnnnnnnnnnnnnnzzzzzzzzzznnnnnznnnxxnnnzzznnnnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxx#++#+#++#nMMMMxxxMxxxM#iiiiii*****
********iiiiiii*MxMxxxxxxnz#+z##+++nxnnnzzz#####z##############nnnnnnnznxxxxxxzzzzzzzzzzzzzznnnnnnnnnxnxxxnxnnxxxxxz**+++++#zWMMMMMMMMMMMMxiiiiiii****
*******iiiiiiiizMMMxxxxxxWM######+znnnxxnnnznnnnnzzz###zz######nnnnxnnxxxMxxMMn#############zzzzzzzzznnnxxnnnnnnxxnn#+++#+#zMMxxMMMMMMMMMxM+iiiiiii***
******iiiiiiiiixMxxxxxxxxxMWMzznz#xn;,#xxxnnnnnnnnnnzzzzzzz###znxxxxxnxxxMxMxxnzz######zzzznzznnnnnnnnnnznnnxxxx*,;zn##nxxMWWMxxxxxxMMxMMMMniiiiiiii**
******iiiiiiii*xxxxxxxxxxMWMM@WWxzxz,:nn#znz#nxzzzzznnnzzz##+##nxxxnxMMzi;:#Mxnnzzzz#z###zzzznnnnnnnxxxxxxxxxn#zz+:,nxxW@@WMxxxxMMMWxxMMxnxx*iiiiii***
*****iiiiiiiiizMMMMMxxxxxnnxxM@@@WM#,+ni.;nn##nnnz#++#zzzzzz##*nxxnxz*i#;,:,;#nxz#++++++#####zzzzzzznnnnxxxxzi,.:zz;zW@@@WMMMxxMMMMMMMMMMxxx#iiiiiii**
****iiiiiiiiiixxxnnnnnnnnnxxxxxW@@@xinz..zni.:zzz+++#zzzz######nMMxxi;#;i*::..,izzz#z#++#########z#zzzzzz#:i#nni.ixzM@@@MxxxxxxxxxxxxxMMMMMMxiiiiiiiii
****iiiiiiiii+xnnnnnnnnnnxxxxxMMMW@@#x#.inz.`inz+###znnnnzzzzzzxMMMxz+ii+++::,,:nnznzznnnnnnnnnnnnnnnxn#+i;,.:nniiMM@@MMMMxMxMMxxxxxMMMMMMMMM+iiiiii**
***iiiiiiiiiinMMMMxxMxxxxxxnxxxxxxW@@xz:#ni.:nz,:#nnnnzz######+#MMMz##+**+#;i:,:+z###########zzzzzzzzz*.`*nz,,+xz#@@@WMxxxxMMMMMMMMMMxxxMMMMMniiiiiiii
***iiiiiiiiiixxxxxxxxxxxxxxxxxxnxxnM@@x*zxi.*n+..zn#,;+z##++zz*;nMMz+##i..,;i:::in#######zzzz#zzzz*:#zni.:nx#;+MnW@@MxxxxxxxxxxxxxxxxxxxxxMMMM*iiiiiii
**iiiiiiiiii+xxxxxxxxxxxxxxnnnnnxxxxM@@n#M#;*xn::nn+``+nz..;nnnzMMMx+#n+;i++x*;;;*++###**+zzz,.*n#.`,nnn;;nMn*#MW@WMxxxxxxxxxxxxxxxxxxxxxMMMMM#iiiiiii
**iiiiiiiiiizxxxxxxxxxxxxxxxxxnnnnnnnM@@xxx*+MM+inxz,.#n#..inxnzMMMWx###znizM#:;;:.iiii#zzzzz*`.zzi.,zMM*izMx#M@@WWxxxxxxxxxxxxxxxxxxxxxxxxxxMxiiiiiii
i*iiiiiiiii*xxxxxxxxxxxxxxxxxxxxxxxnnnW@@@Wz+nMx+#MM*izxz,,*xx;,zxMWWWz#nnxMMi;i:.`:iizzzi,znz..+nn:inMM**xMMWWWWWnnnnnnnxxxxxxxxxxxxxxxxxxxxMM+iiiiii
iiiiiiiiiiiixMWWWWWWWWMWWMMMMMMMMMMMWMWWWWWWMxMM#+nMz+zMMi;*xx+:zMMWWWWzzMMM+;ii```,ii:,```+nn:,*xx**zMxzxWWWWWWWWMMWMMMMMMMMMMMMMMMMMMMMMMMWWM#iiiiii
iiiiiiiiii;;*MMWWWWWWMWMWWWWWWMWMMMMMMMMMMMMMMMMMMxMx++xMz+*MMxxMxMMMWMxn#z#i*i;.``,ii.`` .*nxi;#MM**nMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWMMziiiiiii
iiiiiiiii;;;;+MMMWWWWWWWWWWWWMMMWWWMMMMMMMMMMWWWWWWWWxzzxx++xMMMMxxxxxxnzz#+##**```:ii;;i+znxx+*zMx+zMWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMz;;iiiiii
iiiiiiiii;;;;;zWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMWWWWWWWWWWWxzzxM##nxxxxnzzzz;i;;;```;ii+zzznxxx+*nMMMMWWWMMMMMMMMMMMMMWWWWWWMMMMWWWWWWWWWWWWWz;;;iiiiii
iiiiiiii;;;;;;;nWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMx*+#nxzz#;;+:,n*````.iii*znz##Mx+nWWWWWWWWWWWWWMMMMWWWWMMMMMMMMMMMMWMMMMMMMMMz;;;;iiiiii
iiiiiiii;;;;;;;;xWWWWWWWWWWWWWWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWMMnnx++iiii.``izz:``.;iii*ii*+nxMWWWMMWWWWWWWW@WWMMMMMWWWWWWWWWWWWWWWWWWWWWWWn;;;;;iiiiii
iiiiiii;;;;;;;;;iWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWMxM+iiiii;``*zz+``;iiiii:zxMxWWWWWWWWW@@W@WW@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWMi;;;;;;iiiii
iiiiiii;;;;;;;;;;#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW##+iiiiii:`*zz#;,iiiiiinMMMWWWWWWWWWWWWWWW@WWWWWWWWWWWWWWWWWWWWWWWWWWWWWMz+;;;;;;;iiii
iiiiii;;;;;;;;;;;#xWWWWWWW@@WW@WWWWWWWWWWWW@@@@@@@@@@@@@@@@@@W@@z:**iiiiii;*zz#iiiiii*#MMnMWWWWWWWWWWWWW@@@@WWWWWWWWWWWWWW@@@@@@@@@@W@WMzz#;;;;;;;iiii
iiiiii;;;;;;;;;;;zzzxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMn+**iiiiii*zz#iii*i**zx*+MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxzzzzi;;;;;;iiii
iiiiiii;;;;;;;;;*zzznxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMMMMMMMMx+***iiiii+zz#i*#z#++ziiWMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnzzzz+;;;;;;iiii
iiiiii;;;;;;;;::+zzzznnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMMMMn++**iiiii#zz+i#**+#++;n@Mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnzzzzz#;;;;;;iiii
iiiii;;;;;;;;;:;#zzzznnnnnnnnnnnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz++***iiiizzz+i#++z#+++WWMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnnnzzzz#zzi;;;;;iiii
iiiii;;;;;;;;::;;;;;;;iiiiiiiiiiiiiiiiiii*nnnnnnnnnz*************+++*****i*zzz*i++#z+**zWWziiiii;;;;ii+nnnnnnnn#iiiiiiiiiiiiiiiiiiiii;;;;;;;;;;;;;iiii
iiiii;;;;;;;;:::::::::::::::::,,,,,,,,,,,,;nnnnnnnnn#:...........i+****iii#zzzii*znz#*+xWW+..........:znnnnnnn#,,,,,,,,,,,:::::::::::::::::;;;;;;;iiii
iiiiii;;;;;;;:::::::::::::::::,,,,,,,,,,,,,:#nnnnnnnnn+;,........i+***iiiizzzzii**#z+++xWM*.........iznnnnnnn#,,,,,,,,,,,,,::::::::::::::::;;;;;;;iiii
iiiii;;;;;;;;::::::::::,::::,,,,,,,,,,,,,,,.,iznnnnnnnnnn+i,.....i+*****iiznz#ii*****++MWn+.......i#nnnnnnnn+,.,,,,,,,,,,,,:::::::::::::::;;;;;;;;iiii
iiiiii;;;;;;::::::::::,,,:::,,,,,,,,,,,,,,,...,i#nnnnnnnnnnnz+*ii++***iii*nxnzi******++Wnz#....,iznnnnnnnnn*,...,,,,,,,,,,,,:::::::::::::::;;;;;;;iiii
iiiiii;;;;;;::::::::::,,,,::,,,,,,,,,,,,,,.......,i#nnnnnnnnnxxxx#++*****+xxxn*++***+##Wzzz***+znnnnnnnn#i:......,,,,,,,,,,,,::::::::::::::;;;;;;;iiii
iiiii;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,...........:+nnnnnnnxxxx#++++++**nxnn++***+++zM#znnnnnnnnnnnn#:.........,,,,,,,,,,,,,::::,::::::::;;;;;;;iiii
iiiiii;;;;;;::::::::::,,,,,,,,,,,,,,,,,,..............:*znnnnnnxx#++******nnnn****++++nx##nnnnnnnnnzzi...........,,,,,,,,,,,,,::,,:::::::::;;;;;;;iiii
iiiiii;;;;;;:::::::::,:,,,,,,,,,,,,,,,,,................,i#nnnnnxz++++++**znnn+++++++#xnzznnnnnnnzz+,............,,,,,,,,,,,,,::,,::::::::;;;;;;;;iiii
iiiiii;;;;;;::::::::::,,,,,,,,,,,,,,,,,,...................,*znnxz++*+++**+nnx++++++++Mnzzznnnnnz+:...............,,,,,,,,,,,,:,,,:::::::::;;;;;;iiiii
iiiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,.....................;#nz++++++**+nnx#++++++#Wzzzznnnz+:.................,,,,,,,,,,,,,,,::::::::::;;;;;;iiiii
iiiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,.......................;z+++++++**nxn#**++++#Wzzzznn#;...................,,,,,,,,,,,,,,,,:::::::::;;;;;;iiiii
iiiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,.........................z##++++***nnn#****++#W##zzzi....................,,,,,,,,,,,,,,,,:::::::::;;;;;;iiiiii
iiiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,,.........................,zn##+++***nnzzii*****z###z*......................,,,,,,,,,,,,,,,:::::::::;;;;;;iiiiii
iiiiiii;;;;;;:::::::::,,,,,,,,,,,,,,,,,.........................,zM+#+****iznzz*iiii*i*###z*......................,,,,,,,,,,,,,,,:::::::::;;;;;;iiiiii
iiiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,,........................,nM#******i#nnz+iiiiiii*##z+......................,,,,,,,,,,,,,,,:::::::::;;;;;;iiiiii
iiiiiii;;;;;;:::::::::,,,,,,,,,,,,,,,,,.........................:zMz******i+znz#iiiiiiii*#z+......................,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii
iiiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,.........................:zxn******i*zzzz*iiiiiii*+##......................,,,,,,,,,,,,,,,:::::::;;;;;;;iiiiiii
i*iiiiii;;;;;;:::::::::,,,,,,,,,,,,,,,,,........................:#nn*ii***i*znnz+iiiiiiii*##.....................,,,,,,,,,,,,,,,::::::::;;;;;;;iiiii**
**iiiiii;;;;;;::::::::::,,,,,,,,,,,,,,,,,.......................;##z*iii***iznnz#ii**iiii*#z.....................,,,,,,,,,,,,,,,::::::::;;;;;;iiiiii**
***iiiiii;;;;;;:::::::::,,,,,,,,,,,,,,,,,,......................;##+*iii***i#zzzzi****ii**+n....................,,,,,,,,,,,,,,,:::::::::;;;;;;iiiii***
***iiiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,.....................;##+**iii***#zzzzi********+n,..................,,,,,,,,,,,,,,,,::::::::;;;;;;;iiiii***
***iiiiiii;;;;;;:::::::::,,,,,,,,,,,,,.,,,,.....................i##+**iii*****iii***i******z:..................,,,,,,,,,,,,,,,,::::::::;;;;;;iiiiii***
****iiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,.................:;i+#+**********i*****i******#;..................,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii***
****iiiiiii;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,.,.............,:iii*z+************i**ii***i**#i................,,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii****
****iiiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,.,............iii**i#******i*i**iiiiiii******+i................,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiiii****
****iiiiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,...........,+**i**i*iiiiiiiiiii**i*+***i****i..............,,,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii*****
*****iiiiiii;;;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,..........:****+*i*iiiiiii*******+****i****i..............,,,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii*****
******iiiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,,.........;++******iiii**ii***+*+**++iiiii*i..............,,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii******
*******iiiiiii;;;;;;;::::::::,,,,,,,,,,,,,,,,,,,,,,........;+zz#+****i**i**iii******+*iiiii**,.............,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiii*******
********iiiiii;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,,,,.....:+#+#zz****ii*i*i*ii*iiiii********#:............,,,,,,,,,,,,,,,::::::::;;;;;;;iiiiiii******+
+*******iiiiiii;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,,,.....;#+**i***#**i**i***ii************+*i...........,,,,,,,,,,,,,,,:::::::::;;;;;;iiiiiii******++
++******iiiiiii;;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,,,....,++****ii++*i********i***********++*.......,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;iiiiii******+++
++********iiiiiii;;;;;;:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,;********#**i*****++**i************,..,,,,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;;iiiiii*****++++
+++*******iiiiiii;;;;;;;:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,:*******i*#+*****iii++++**********+i,.,,,,,,,,,,,,,,,,,,,,::::::::::;;;;;;;iiiiii******++++
++++*******iiiiiii;;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,,,,,i+*******+*++**********##nz#++****++:,,,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;;iiiiiii*****+++++
++++******iiiiiiii;;;;;;;;:::::::::,,,,,,,,,,,,,,,,,,,,,,,:*+******i****+******+*****###++++++#i,,,,,,,,,,,,,,,,,,,,,:::::::::;;;;;;;iiiiii******+++++