xxxxxMMMMMMMMWWWWWWMMMxxxnnnnnnnMxxnnzz#zzzzzzzz###+####++++++++++**iii*++********************iiiiiiii***++######+#####zz#znzzzz###+ii*++*i*i*++#znnnx
x#nxMMMMMMMMMMMWWWWMMMMxxnnnnnnxxxnnzz##zz##zzzz###+####+++++++++*****i+##++*********++********iii*ii*******++#########zzzzzzzz####+ii**+****+++#zznnx
nznxMMMMMMMMMMMWWWWMMMMxxnnnnxxxxnnnzz#zz##zzzzz###+#####++************+z#++++++++**++++***************+++++**++##z###zzzzzzzzz###++*i**++**+##+#znnnn
n#zMMMMMMMMMMMMWWWWMMMMxxnnnnMMxxxnnzzzzzzzzzzzzzz#######+*************+z#++++++++++++++++***********+++++++++++++####zzzzzzzzz###++iiii*++**#z##zznnn
xxxxxMMMMMMMMMMWWWWMMMMxxnnxMMxxxxnnnzzzzzzzzzzzzzz######+*************#z#+***********++**************+++++++++++++##zzzzzzzzzz###+**iii**++*+zz#zznnn
xznxxMMMMMMMMMWWWWWMMMMMxnxMMxxxxnnnnnnzzzzzzzz###zzz###+++*********iii#z#+ii**iiii****************i***++++++++++++++#zzzznnzzz###+*iiii**++*+#zzzznnn
x#nxxMMMMMMMMMWWWWWMMMMMxxMMMMMxnxnnnnnnnzzzzzzzzzzz###+++**********iii+z#*iiiiiiiii**************ii******+++++++++++#zzzznnzzz##++**iiii***++#zzzzznn
xzzxMMMMMMMMMMWWWWWMMMMMxxMMMMMnxxxxxxnnnnnnzzzzzzzzz#++++*********iiii+z+*iiiiiiiii****iii****************+++++++++++#zznnnnzz##++**iiii***+##zzz#zzn
nznxMMMMMMMMMMWWWWWMMMMMMMMMWMxxxMMMxxxxxxnnnzzzzzzzz##++++*******iii;i*#+*iiiiiiiii****i**************+***+++++++++++#zznnnnzzz#++*iii*****+###zz##zz
x#nMMMMMMMMMMMWWWWWMMMMMMMMWWxxMMMMMMMMMMMxxxnnzznzzzz#++++*******iii;;*#+*iiiiiiiii*******************+++++++++++++++#zznnnnzzz++***i******+###zzz#zz
nzxMxxMMMMMMMWWWWWWMMMMMMMWWMxMMWWWWWMMMMMMMxxxnnnnzzz###++*******iii;;*#+*iiiiiiiii**+***************++++++++++++++++#zznnnnzzz++**********+#zz#zz##z
nznxxMMMMMWMMWWWWWWWMMMMMWWMxMMMWWWWWWWWWWWMMMxxnnnzzzz##++*******ii;;;i++*iiiiiiiii*i+**************++++##++++++++++##zznnnnzzz++*********++#zzzzzzzz
M+zxxMMMMWMMMWWWWWWWMMMWWWMxMWWWWWWWWWWWWWWWWMMxnnnnzzz##+++*******ii;;i++*iiiiiiiiiii++*********++++#########+++++++##znnnnnnzz++**i******++#znnnnzzz
xzzxMMMMMMMMMWWWWWWWMMMWWMxMMWWWWWWWWWW@@@WWWMMxxxnnnnzz##+++++++***iii*++*iiiiiiiiiii*+*****++*+####zz########++++++##znnnnnnzz++**i******++##znnnzzz
n#nMMMMMMMMMMWWWWWWWWWWWMMxMWWWWWWWWWW@@@@@WWMMMxxxnnnnzz#+++##+++****i*++**iiiiiiiiii*#+***++++#nzzznnzzzzz#######++##znnnnnnzz#+**i******+##zznnnnzz
nznMMMMMMMMMMWWWWWWWWWWMMxMMWWWWWWWW@@@@@WWWWWMMxxxxxnnzz##++++++*****i*+***iiiiiiiiii*#+++*+###znnnnnnnnnnnnzzzz######znnnnnnzz+***i******+##zzznnnzz
x#xMxxMMMMMMMWWWWWWWWWWMxxMMWWWWWW@@@@@@WWWWWMMMMMxxxxnnzz#+++***i******+***iiiiiiiiiii#+++++##znnnxxxxxxxxxxxnnzzzz###znnnnnnzz+***i******++#znzznnnz
x#nxxxMMMMMMMWWWWWWWWWMMxMMWWWWW@@@@@@WWWWWWWMMMWWMMMxxnnz##+++**iiiii*+****iiiii;iiiii+#+++##znnnxMMMMxxxxxxxxnnnnzz##znxnnnnzz+****i***i**+#zzzznnnz
xnxxxMMMMMMMMWWWWWWWWWMMxMMWWWW@@@@WWWWWWWWWWMMMMMWMMMxxnzz#++++**iiii*+****iiiii;ii*ii+#+###znxnxMMMMMMMMMMMxxxxnnnnz##znnnnnzz+**+*i*****++##zzzznnz
xznxMxxMMMMMWWWWWWWWWWMMxMMWWW@@@WWWWWWWWWWMMMMMMMWMMMxxxnz##+++***iii*+****iiii;;;i**i*####znnxxMMMWWWWWWMMMMMMxxnnnnz#znnnnnz#+i***ii****++###zzznnn
xznxxxxMMMMMMWWWWWWWWWMMxMMWWW@@WWWWMMMMMMMMMMMMMMWWWMMxxnzz#++++**iii*+****iiiii;;i**i*###zznnxMMWWWWWWWWWWMMMMMxxnnnz#znnnnnn#+i***i;ii**++####zzznn
nznxxxxMMMMMMWWWWWWWWWMMxxMWWW@WWWMMxMMMMMMMMMMMMMMWWWMMMxnzz##+++*iii*+****iiiii;;i****#zzznnxMMMWWWWWWWWWWMMMMMMxxxxnz#nnnnnn#+ii**i;ii***+#####zzzz
n#nxxxMMMMMMWWWWWWWWWWMMxxMWWWWWMMMnnMMMMWWWWWMMMMMMMWWMMMxnzz#+++*****+****iiiiiii;i**+#zzznnxMMWWWWWWWWWWWWWWMMMMxxxnzznnnxnn#+*i***iii***+####z##zz
x#nMMMMMMMMMWWWWWWW@WWMMxxMWWMMMxnMxMMWWWWWWWWWWWWMMMMWWWWMxnzz#+++***+++***iiiiiiiii**+zzznnxMMWWWWWW@@@WWWWWWWMMMxxxnzzznnxnn#+*i***i;**+++#zzzz#+##
xzxWMMMMMMMMWWWWWWWWWWMMxxxxMMMMnxMMWW@@@@@@@WWWWWWMMMMWWWMMxnz##++++++++****iiiiiiiii+#zznnxxMMWWWWW@@@@@@WWWWMMMMxxxxz#znnxnnz+*i***iii+++###zzz#++#
xnxWMMMMMMMMWWWWWWWWWWMMMMMxxxxxxxMWWWWMMxxxxxMMWWWWMMMWWWWWMMxzz####+++++***iiiii****+#znnxMMxMWW@@@@@@@@@@WMMxxxMxxxxn#znnxnnz+*i**i*ii++++##zzzz#+#
MnMMMMMMMMMMWWWWWWWWWWWMMMMxxxnxxWWWMMxnz#+++#znxMWWWWMW@@WWWMxnnzzz####++****iii*****+znnxMMxxMWW@@@@WWWWW@@WMxnxxxxxxnzznnxnnz+*i****ii*+++###zzz#++
WzMMMMMMMMMMWWWWWWWWWWWMMMMMMxnxWWWMxnnz#+**++#znxMMWWMMW@@@WWMxxnnnzz##+++***iii**+++#nxxxxnxxMWW@@WWMMMMMMW@Wxnnnxxxxnzznnxnnz+*i*+**ii*+####zzzz##+
WxxMMMMMMMMMMWWWWWWWWWWWMMMMMxxMWMMxxxnnz+++++#znxMxxMMMMW@@@WWMxxnxnzz#++++***ii**+##znxxnznxxxW@WWMMMxxnznxWWMxnnnxxxxnnnnnnnz+*ii+******##zz#zzzz#+
WMMMWMMMMMMMWWWWWWWWWWWWWMMWMxxWMMxxxxxnz###+++#znxMxnxxMWW@@@WWMxxxxzz#++++**iiii*+#znxxnzzxMxMWWMMMxxnn##+zxWWMnznnxxxnnnnnnxz+*i*+*****++zzzzzzzz##
WznWMWWMMMMWWWWWWWWWWWWWWWWWMxMWMMMMMxxxnnnnnzz##znMMxxxxMW@@@@WMMMMxnzz#+++**iii**+#znxxnnxxxxWMMMMMxxnz#++#zMWWxzznxxxnnnnnxx#+*i*++****+#zzznzzzz##
WnMWWWWWMMMWWWWWWWWWWWWWWMWWMxMWMMMMMMMMMMMMMMxnnnnxMMMxxxMW@@@@WWMWMnzz##+***i****+#znxxnxxnxMMxMMMMMMxnz+++#nMWMz#znxxxxnnnxx#+*i*+++**++#znznnzzzz#
WzxWWWWWMMMMWWWWWWWWWWWWWMWWxxWWMMWMMWWW@@WMMWWWMxnnxMWMxnMW@@@W@WWWMxnzz#+**iii*+++#znxxnnnxMxxMMWWWW@WWMnz#zzxWWn##nxxxxnnnxx#+**i+++**++#znnnnzzzzz
WnxWWWWWWMMMWWWWWWWWWWWWWWWWxxWWMWWWW@WW@@Wz*xWMMMMxxxMWMxxW@@@@@@WWMMxn#++*iiii**+##zxxnnnxMxxMW@@@WxnM@WWMnnnnMWMnzzxxxnnnnxx++**i+++***+#znxnnnznzz
WzxWWWWWWMMMWWWWWWWWWWWWWWWMxMWWWWW@@@WMW@WM#xMnxMWMxxxMWWMWW@@WW@WWMMxz#++**i****+#znxxxxxxnxM@@@@@W#*xWMWWMxnnxMWxnzxxxnznxxn++*ii+#+****#znxxnnnnzz
WzxWWWWWWWMMMWWWWWWWWWWWWWWxxWWWWW@@@@WxM@@WWMn+#xMWMMxxMWWWW@@WWW@WWMxnz#+******++#znxxxxxznM@@@xW@WxzM@xxWWMxnxMWMnzxxxnznxxn++*ii*#++++*#znxxxnnznz
WWWWWWWWWWMMMWWWWWWMMWWWW@MxMWWW@@@@@@@WW@@@WW#i*zxMWWMxMWWWW@WWWW@WMMxnz#+******++#znxxxn#zx@@@@WW@@WWW@zzxWWMxxxMMxzxxxnznxxn+**ii*+++++++zznxxxnnnz
WxWWWWWWWWWMMMWWWWWMMWWWWWMxMWW@@@@@#@@@@@#@WW+i*#nMWWWMMMWWW@WWWWWWWMxn##+******+##znxnz+#nM@@@@@@#@@@@W+#nMWWxxxMMxnxxxnznnnn++*iii+++++##znnxxxnnnz
WWWWWWWWWWWWMMWWWWMMMMWW@MxMWW@@W@@@#######@@n**+#znMWWWMMMWW@WWWWWWWMxnz#++*****+#znnnz**zxnW@@@@####@@x*#zxWWMxxxMMxxxnznnnzz#+*iii+#+#####znnxxnnnn
WnxWWWWWMWWWMMMMMMMxxxMWWxxWWW@WWWW@@#####@@W#*+##zzxMxMWMxxMWWWWWWWWMMxnz#+****++#znnz+**zxzM@@@@@@#@@W#*+zxWWMMMxxxxxxnznnzzz#+**ii+##+##z#znnxxxnnn
MznWWWWWMWWWWMMMMxxnxxMWMxMWWW@WMMMW@@##@@@Wn###zzz#nnznMWxnMWWWWWWWWWMxnz#++****+#zznz+**#nznMW@@@@@@@x++#nxMMMMMxnxxxxznnnzzz#+**ii+##+#zzzzznnxxnnn
WnMWWWWWMMWWWWWMxnnnxMMMxMWWWWWWMxxxxMW@@@Mnzzz###zznnnxMMnnMWMWWWWWWWMxnzz#+*ii**+#znz+++#zzznznMWW@@x###nxxxxxxMMnnnnnnnnz##z#++*ii+####zzznznnnxnnn
WnMWWWWWWMWMWWWWMxnnnxxxMWWMMWWWWMxnnnnxxxnzzzzzzznnnnnxxnnxMWMWWWWWWWMxnzz#+*ii**+#zzz+++####zz####znnznnnnzzxxxMMnznnnnxnz#zn#+++*i*++##znnnnznnnnnn
@zxWWWWWWWWMMMWWMMMMxxMxxxxxMMMWWWMMxnz########zznnnnnnnnnnxMMWWWWWWWWMxnnz#+*ii**+##zz#++#zz##znnzz###zzznnnxMxnMWxznnnxnz##nnz++#*ii++##znnnnnznnnnn
MnMWWWWWWMMMMMMMMMMMMMxzznnxMMMWWWWWMMxnnzzzznnnxxxxxnzznxxMMWWWWWWWWWMxxnz#+*ii**+##zn#++##zz##znxxxxnxxxxxMMMMnxWMnznnnnz#znxz++#+ii*+##znnnnnnzznnn
MxxWWWWWWWWMMMMMxxxxxxz#nxxMMxxMWWMMMMMMMMMMMMMMMxxxnnznxMMMMWWWWWWWWWMMxnz#+*ii**++##zz+*+##znz##nxMMMMMMMMMMMMznMWMnzzzzzznxxz+##+ii*+###nnnnnnzzznn
MzxWWWWWWWWWWMMMMMxxxxxnxMMMMMxxMWMMMMMMWMMMMxxxxxxxnnnxxMMMMWWWWWWWWWMMxnz#+*ii**++##zz+*+##znxn#zznnxxMMxxxxxxzzxWWMxzzzznxxxz+###+i*+##znnnnnzzzznn
WxMWWWWWWWWWWWWMMMMMxxxxMMMMMxnnnMWMMMxxMxxxxxxxnnnnnnxMMMxMWWWWWWWWWWMMxnz#++i;i**+##zz+*+##zznxnz##znnnxxxxxxxzzxMWWMxnnnxxxxz##z#+***+#znnnnnzzzzzn
xzMWWWWWWWWWWMMMMMxxxnnnxxxMxxnzznMMMMMMMxxxnnnnnnnnxxMMMMxMWWWWWWWWWWMMxnnz#+i;i**+###z#*+##znnznnnzzzznnnxxxxnzzxMMWWWMMMMxnxn##z##+**++#nnnnzzzzzzn
M#xWWWWWWWWWMMMMxnnzzzzxnnxMxxnzzznxxxxxxnnnnzznnxxMMMMxxMMMWWWWWWWWWWMMxxnz#+i;i**++####+++#znnnzznzzzznnnxxxxzznxMxxxMMMxxnnxz#zz###+*+++znnnnzzzzzn
WMWWWWWWWWWWWWWMMxxnnznzznxxxxnnz##znnzzzzzzzznxxMMMMxxnMMMMMMWWWWWWWWMMxxnz#+i;;**++####+**+#znxnnnnzzzznnxxnnnnnxxnzznnxxnnxxz#zz####++++#znnzzzzzzn
WxMWWWWWWWWWWWWWWMMxnnn##nxxxxnxnz#+#z##zzznnxMMMxxxxnnnMMMMMMWWWWWWWWMMxxnz#+*;;i**+####++**+#znxxxxnzzzznnnnnnnxxxnzzznxnnnxxz#zzz#####+++zzzzzzzzzn
WnMWWWWWWWWWWWWWWMMxxnnzzznnxnnnxnnzzzznnnnxxxxxxnnxxnnnMMMMMMWWWWWWWWMMxxnz#+*i;i**+#####+**+#znnxMMxxnzznnnnnnnnxxnzzznnnzznnz##zzzzz##+++#zzzzznnzn
MxMWWWWWWWWWWWWMMMxnnnnz#znnxnzznxxxxxnxxxxxnnzznnnxxnnnMMMMMWWWWWWWWWMMxxnz#+*i;i**+###z#++**+#znnxMMMMxnzzzzzzznnnnnnnnnnzznnn##zzzzz###+##zzzzznxnn
MnxWWWWWWWWWWWMMMMxnznnz#znznnnzznnMxxxxnz####zzznxnnnnxxMMMMWWWWWWWWWMMxxnz##*i;i**++##z#+++**+#nnnxMMWWMxnnzzzzznnnnxxxxnnznnnz#z#######+###zzzznxnn
WnMWWWWWWWWWWWWMMMxnznnz#znzzzznzzz#####+++++#zzznnnzznxMMMMWWWWWWWWWWWMxxnzz#+i;;i*++##z##+++**+zznnxxMMWMMxxnz#znnnznxxxxnnxxnzzz#############zznxxn
WnxWWWWWWWWWWWWMMMxnnnnz#zz##znnnnnz###++####zznnnzzzznxxMMMWMWWWWWWWWWMxxnnz#+*i;i*++#####++++**+zzzznnxxMMMMMxnnnnnzznxxxxxxxxzzz#############zzzxxn
WnxWWWWWWWWWWWWMMMMxxnnzzz##znnnnnnnnzzzzzzzzzzznnz#zznxxMMMMMWWWWWWWWWMxxnz#++*i;i**+######+++**+#zzznnnnxxxxxxxMxnnzzznxxxxxxMnnz##+####++#####zzxxn
xnMWWWWWWWWWWWWMMMMxnnzzzz#zznzznnzznzzzzzzzzzzzzn###znxMMMMMMWWWWWWWWWMxxnz#++*i;i**++#####+++***+#zznnnznnznxxxMxznnz##zxxxnxMxnz##+#####+#####zznxn
MzxWWWWWWWWWWWMMMMMxnnnzzzz#zzzzznnnznnzz##zz#zzzz###zxMMMMMMMWWWWWWWWWMMxnz##+*i;i**++#####+++***+#zzznnnnnznxnzxMnznnz#znxxxMMxxn###+##+##+####zznxn
MMMWWWWWWWWWWMMMMMMxnnnzzzz#zzzzzznnnnz##zz#z####zz#znxMMMMWWWWWWWWWWWWMMxnz##+*i;;i*++#####+++***+##zznzznxnnnn#nMxzznzzzznxxMMMxnz#####++######zznxn
WMWWWWWWWWWWWWMWMMMxxnzzzzzz##zzzznnz####zz#z####zz#znxMMMMWWWWWWWW@WWWMMxnz#++*i;;i**+#####+++***++###zzzznzznnzzxMnzzznnnnnxMWMxxz#####+#######znnxn
xnxWWWWWWWWWWWWMMMMxxnzzzzzz##zzznzzzzzzzz######zz#zznxMMMWWWWWWWWWWWWWMMxnz#++*i;;i**++#####++***+++++#zzznnznzz#zxxnzznnnxxxMWMxxn####+###zzzzzznxxn
WxMWWWWWWWWWWWWMMMxxnzznnzz##zzzzzz#zzzzz####++####zznxMMWWWWWWWWW@WWWWMMxnz#++*i;;i**++#####++***+++++##zzznnnnzzznxxnznnnnxxWWMMxnz#####+#zzzzzznxMn
WW@WWWWWWWWWWWWMMMxxnnxnnzz#zz##zzz#zzzz####+++####znxMMMWWWWWWWWW@WWWWMMxnz#++*i;;i**++#####++***++#####zzzzzzznnxnnxnzznnnxxWWWMxnn#######zznzznnxMn
WWWWWWWWWWWWWWWMMMMxxxxnnzzzzzzz##z##z######++++###znxMMWWWWWWWWWW@WWWWMMxnz##+*i;;i***++####++****+++####zzzzzzznnnnnxnzznnxxWWWMxxnz#####zznnnnxnMMx
WWW@WWWWWWWWWWWMMMMMMxxnzzzzzz#z############++++###nnxMMWMWWWWWWW@@WWWWMMxnz##+*i;;i***++####++****++++###zzzzzzznznnnxxzznnxMWWWMMxnz####zzznnxxxnMMx
WWW@@WWWWWWWWWWWMMMMxxxnnnnzz##z############++++++#nnxMMMWWMWWWWWW@WWWWMMxnz#++*i;;;i**+++###+++****+++####zzznznnnnnnnxzzznxMWWWMMxnnz##zznnnnxxxxMMx
WWW@WWWWWWWWWWWWMMMxxxxxnnnnz#zz############++++++znxMMMWWMMWWWWWW@WWWWMMxnz#++*i;;;i***++####++****++++###zzzznnnnnnnznnzzxxMWWWMMMxnzz#zznnnxx#xnMMx
WWWWWWWWWWWWWWWWMMMMMxxxnnnnz#zz#####z#####++++++#znxMMMMMMWWWWWWW@WWWWMMxnz##**i;;;i****++###++****++++####zzzzznnnnnznnznxxWWWWMMMxnzz#zznnnnx#xnMMx
WWWWWWWWWWWWWWWWMMMMMxxxnnnnzznz#####z####+++++++#nxMMMMMMMWWWW@WWWWWWWMMxnz#+**iii;i****+####++****+++++####zzzzzznnnnnnznxMWWWWMMMMxnzzzzznnxx#nnMMM
WWWWWWWWWWWWWWWWMMMMMxxxnxnnznzz########z#+++++++znxMMMMMMMWWWW@WWWWWWWMMxnnz#+*iii;ii***++####++***++++++######zzznnnnnzznxMMWWWMMMMxnnzzzznnxx#nnMMM
WWWWWWWWWWWWWWWWWMMMMMxnnxnnznnzz#########+++++++znMMMMMMMWWWWWWWWWWWWWMMxnzz#+*iii;;ii**++####++***++++++#######zznnnnnnnnxMMMWWMMMMxxnznzznnxxxnnMMM
WWWWWWWWWWWWWWWWWMMMMMxnnxnznnnzz##zz#####++++++#nxMMMxxMWWWWWWWWWWWWWWMMxxnz#+*iiiiiii**++#####++***++++++####zzzzznnnnnnxxMMMWWMMMMMxnnnzznxM#xxnMMM
WWWWWWWWWWWWWWWWMWMMMMxxxxnznnnnz#zzzz####++++++#nxMMxxMWWWWWWWWWWWWWWWMMxxnz#+*iiiiiii**++###z##++****++++####zzzzznnnnnnxxMMMMMMMMMMxnnnznxxMxxxxMMM
WWWWWWWWWWWWWWWWMWMMMxnxxxnnxxnnz#zzzzz###+++++#znxxxxMW@@WWWWWWWWWWWWWMMxxnzz#+iiiiiiii*+###zzzz#+*****+++#####zzzznnnnnnxxMMMMMMMMMMxnnnznxMMMxxxMMM
WWWWWWWWWWWWWWWWWWMMMxnxxxnnxxxnzznnzzzz##++++##znxxxMWW@@WWWWWWWWWWWWWMMxxnzz#+*iiiii***+##zzzzz#++****+++#####zzzznnnnnnxxMMMMMMMMMMxnnnznxMMxxxMMMW
WWWWWWWWWWWW@WWWWWMMMxnxxxnnxxxnznnnzzzz##++++##znxnxMW@@@WWWWWWWWWWWWWMMMxxnzz#+*ii****+##zzz##zz#++***++++#####zzznnnxxnxxMMMMMMMMMMMxxnnnMMxxxMMMMW
WWWWWWWWWWW@@WWWWWMMMxnxxxnxMxxnnnnnnzzzz#+++##zznnxxW@@@@WWWWWWWWWWWWWMMMxxnnz##******+###zzz++zn#++***+++++#####zzznnnxxxxWMMMMMMxMMMxxnnxMMxxxMMMMW
WWWWWWWWWWW@@@WWWWMMMxxxxxnxMxxxnxnnnnzzz#++###znnnxMW@@@@WWWWWWWWWWWWWMMMMxxnzz##+++++###zzzz#*znz#+***+++++#####zzznnnxxxxWMMMMxMxMMMxxnnMMMxMMMMWMW
WWWWWWWWWW@@@@WWWWWMMxxxxxxMMxxxxxnnnnzz##++###zznxMW@@@@@WWWWWWWWWWWWWMMMMxxxnzzz#######zznnz#*#xnz+***++++++#####zzznnnxxMWMMMxxxMMMMMxnxMMMxxMMMWWM
WWWWWWWWWW@@@@@WWWWWMMMMxxxMMMMxxxnnnnzzz#++##zznxMWW@@@@@WWWWWWWWWWWWWWMMMMxxxnnzzz##zzzznnnz#*#xxz#+**++++++######zznnnxxMWMMMxxxMMMMMxxMMMMxxMMMWWW
WWWWWWW@@@@@@@@WWWWWMMMxxxxMMMMMxxxnnnzzz#++##zznMWWWW@@@@WWWWWWWWWWWWWWWMMMMxxxxnnzzzzznnnnnz#+zxxnz+*++++++++######znnnxxMWMMxnnxMMMMMxxMMMMMMMMMWWW
WWWWWWW@@@@@@@@@WWWWMMMMxxMMMMMMxxxxnnnz##+####zxMWWWW@@@@WWWWWWWWWWWWWWWWWMMMMxxxxnnnnnnnnnnzz#zxMxz#+++++++++######znnxxxMWMMxnnxMMMMxxMMMM#MMMMMWWW