+**+********************************+****************+********ii;;ii*+****++++++++++##z###+***+#zzzznnnnnnnnnnnnnnnznnnnnnnx
++************************************************************i;;;;ii******+*+++++#######+ziii+#zzzzzznznnnnnnnnnzzznnnnnnnn
*************************************************************ii*@#:;i*****++++++++++#####nMz;i*##zznzznnnnnnnnnznznzxnnnnnnx
++***********************************************************iiW#z:;ii*****+++++*++++####M:++;*+#zzzznznnnnnnnzzzznznnnnnnnn
+************************************************************i+z+++:;i*******+++*+++#####z:zx;i++z#zzzzznnnznnzzzznnnnnnnnnn
**********************i**************************************in;nxz;;;i************+++##z+:xxii*+#zzzzzznznnnnnzzznzznnnnnnx
*************************************************************iM,nx##:;iiiiiiiiiiii***+++n;:xnz;*+#zzzzznnzznnznznzznnxnnnnxx
*******************i*i***********************************i****x:nnnx::;i;i;;;;;;;;;iii**z,;xnx;i+###zzznznznnnzzzznnnxnnnxnx
*****************************************++*****************i+n;Wnx##::;;::::::::::;;;i*#,;xnM*i*+#zzzzzzzzznnnznznnnxnnnnxx
***+****i*i**i**i*****************+**********************i**i+z;@xnzn:,:i+zzzznnnzz+;:;#:,ixnMz;*+#zzzzznzzznnzzzznnnnnxnxxn
***++****i*i***iii******************************************i++:@@nx*z##i.......`.:+M+:#.,+xxWM;i*#zzzzzzzzzznzzzznnnnnnnxxx
**++*******i**iiiii*i*******i*ii***************************iiz*,W@Mx+i...............*n*.,#xx@Wii*+z#zzzzzzzzzzzzznnnnnnxxxx
***************iiiiii***ii**i***************************ii*i;ni,n@@x:...............,.#,.,nnM@W#i*+zzzzzzzzzzzzzzzznnnnnnnnn
*************i**iiiiiii*****i******************************iizi,*#@;,...............,,z..,nnW@Mni*+zzzzzzzzzzzzzzznnnnnxxxxx
***********i**i*iiiiiii*i**i****************************i*ii+#*,,Wz,,...............,i;.,:MnW@xxi*+zzzzzzzzzzzzzzznnnnnxnxxn
*******i*i*******i*i***********ii*************************iiz**,,z*,,..............,,+..,iMn@@Mni*##zzzzzzzzzzz#zzznnxnxnxxx
**************i**ii****************************************ix;*.,;#,................;i...#xnW@Wxi*##zzzzzzzzzz#zzzzznxxnnnxx
*********iiii*****i***************************************iiM,:.,.#................,z...,nnnx@Mzi*+#zzzzzzz#zz#zzzznnnxxxxxn
*****i***iiiiii**i****************************************i*M,,,,.;*,............;##,`..*nnnnxMzi*+#zzzzzz#zzzzzzzznnxxxxnxx
*ii*i***iii*******i****************************************iM,,,,..,i#+;;;;;i*+#+;..`...#nnnnxM+i*###zzzz###zz##zzznnxxnnnnn
iii********************************************+***********ix,,,,....`.,::::,,..`.......znnnnxW*i*###z#zzzzzzzzzzzzznnxnnxxn
*i***********************************************+*********in,,,..............``````....znnnnxWii*##zzzzzzzzzzzzz#zzznnnxnxn
***i*********************************************+*********iz,*:.......``````````````...nxnnnx@ii*+##zzz###zzznzzzzznxnnxxxn
i****************************i**************++***+*********iz,**.....`````````````````..nxnnxM@*i*+#zzzzzz#zzzzzzzzznnznnxxn
******************i*****************************+**********in,iz....``````````````````..nMnnxM@*i*+zzzzzzzzzzzzzzzzznnnnnxxx
******************i*i********ii*************+*+*++*++******ix,ix....`````````````````...xxnnxW@+i*+#zzzzzzzzzz##zzzzznnznnnn
*******************ii***i******************+++*+++*+*******iM,ix`...`````````````````...xMnnxW@+i*+#zzzzzzzzzzzzzzzzznnznnnn
+********************i*****i***i***********+++++++++++******M,i#...``````````````````...xMnnxW@+i*+zzzz#zzzz#z#z#zzzzznznnnz
*++*+*************iii*********************+++++++++++******#x:*n`..``````````````````...*WnnxW@*i*+#zz#zzzzzzzzzzzzzzznznnnn
*++*************************************++++++++++++++*****zn:#+....``````````````````...nnnxW@+i*+#zz#zzzzzzzz#zzznzznzznnn
**********************i*****************+++++++++++++*+****+M,x,....``````````````````...,znMW@+i*+##z#zzzzzzn#zzzznzzznnznz
*++*******************************+****+*+++++++++++++++++**M*n.,..```````````````````....:xxWW*i*###zzzzzzzznzzznnnzzznnnxn
*+********************************+*****+++++++++++++**+****x#n....```````````````........:MxWW*i*+##zzzzzzznzzzzznzzznznnnn
********************************+****++***+*+++++++++++++++*#+Wi.`````````````````.....``.#MxMWii+###z#zzzzzznzzzznnznznnnxn
+**++***********+**+************+*+++++++++++++++++++**+++***#xn#*:.``````````````..``.:;#MnMMW;i+######zzzzzzzzzznnznznnnnn
+++++**************+**********+++***+++++++++++++++++++++++**n*xn#++*,```````````.:*+z###MMnMMW;i+##zz#zz#zznzzzzznznznnnnnn
++++++***********+*+++***+**+***+++*++++++++++++++++*++++++**z:zMWMxz#+.```````..+zznxMW@WnnMMM;i+#####zzz#zzzzznznnzznnnnnn
+++++**************++****+++++++++++++++++++++++++++++*++++**#:*nWMMWMnz.``````.;nMxMMMM@nnxMMx;*+###z#zzzzzzzzznnnznnnnnnxn
+++++**************++*+++***+*+++++++++++++++++++++++*++++****+,+Wzzx+Mn*``````.zWMxzznWM#nxWWnii*#+#z#zz#zzzzzznnnzznnznznn
+++++++++++********++*+*****++***+++++++++++++++++#+*+*++++***n,:xni+ixMn,`````;WMz#+*+Wx;xMWW#i*++##z#zzzzzzzzzznnzzzznnnnn
++++++++**+**++***+*+**+++++***++++++++++++++++++++++*+++++++*n,,iM++z+xMi````.nMz*n#*nM;+xMW@+i*+##zz#zzzzznz#znnnznnznnnnn
+++++++++++*******++**+*++**+++*+*+*+++++++++++++++++++++++***z;,.;znMn#x#````:xWxznxxn:,nnWW@*i*+++#z#zzzzzzn#znnnnznzznnnn
+++++++++++**++**+++*++++++++++++++*++++++*++++++++++*++++++**+#,.....,#z:`` `.#x#:i+i,,,xxWW@ii*+###zz#zzzznnznnnnzzznnnnnn
++++*+++++****+*++++++++++++++*++++++++++++++++++++++*+++++****x,;....ii:``````.i+;.....inn@@W;i+#####zzzzzzzzzznnnnzzznnnnn
+++*++++++++*+++++++++++++++++++++*+++++++++*+++++++++++++++***x,#.....``````````.......+nx@@x;i*#####zzzzzzzzznnnzznnznnznx
+++++++++++*++*+++++++++++++++++++++++++++++*++++++++++++++++**n;+:....``````````......`znxW@+i*+####zzzzzzzzzznnnzzzzznnznn
++++++++++++++**+++++++++++++++*++++++++++*++++++++++*++++++++*+#i*....```````````.....,xnMMM#;i++####z#zzzzzzzzzzzzzznznznn
++++++++++++++++++++++++++++++**++++++++++*+******++***++*++****x;z.....````````````...innWxMz;i*##########zzznnzzznnznnnznn
++++++++++++++++++++++++++++++++++++++++++***iiiiiiiiii******++*z+z;.....``````````....zzxM+;n;i*+#####z##zzznzzzzzznznnnznn
++++++++++++++++++++++++++++++++++++++++++*ii*+z+i;#z#;i;ii***+**M#z.....``````````...`nzMn:;*+;i++######+++######zzzzznnznn
++++++++#++++++++++++++++++++++++++++++++*i;#WxxW@xMnMnzzxii*++**Wnx:...```````````...,nxM#::;x:i*+#++***i**+++++++####nnzxn
++++++++++++++++++++++++++++++++++++++++**i*nWMWMnzzWWWWMMn;i****MWz#....;*;;;.````...;nWMi:::x*;i**+#zMWMMxxnnz#++*+++#zznn
+++++++++++++++++++++#+++++++*++++++++++*i##+nWWnxnMMxxxxxW;i****nxMM,...#nxxMn:``...`iWWn::::z#;*nMWMz+*i:,,,:i+znz+**+##nz
#++++++++#+++++++++++++++++++++++++++++*i;iWWnnMnnMMMMMMMMM#;i***#xWx*...`....`````..,xMWz,,::+MMM+:.`....`:iiii;:..*xi*++zz
#+++++++++++++++++++++++++++++*+++++++**;nnMnnnnMMMMMMMWz#MMniii**znWx.......```````,nMMx+,,,;nn;..`````:++i,........:n#i*##
+++++++++++++++++++++++++++++++++++++**inzzzxMMMMMMMMWW++:*WMWii*i+#n@,...````````..xxxWn;,,nx,...````;#i..............zW+*+
#++++++++++++#+++++++++++++++++++++***i+MxMMMMMxxMMWMz*,:#,;xW+;iinizM#....```````.xxnxM#,*xx,,......*:.................*M#*
++++++++++++###++++++++++++++++++++**izMxMMMMMMMMMMWz,i;,;*,:iniiiz;znM.....`````.xWxxMnnM@x,......,#..```....`,;........;x#
##+#+++++++++#+++#++++++++*+******+*izxxMWWxnxW@WMWx+:,#:,i;,i:#;in+izx+....`.``.#@MxxM#:MM,......,+..````..``,z*;........,x
+++++++++++++##+++++++++++***+*****i*MxWW#nMMW++MWWWi#,,*,,::i:#i;+M,znM+,.`.`..*@MMx#,`+@,.......z..``.`*i:.`*;;*:i++:....;
+++#+##++++++##+++#+++++*+*++++****inWMxMxWMMMWMMnWWMn+*#++z###**+;@:izx@Wxz##zxWMMx;`,i@+......`#.`.````#;*#zz+##zz+;+.....
+##++##+++++++++++++++++++********i#MnWWWWWMMMMMxMMWWMz#z##n#nnz;zn@+,#zMnM@@@@WWMn.,*znM`......i;.``.```#i++*zxz##z#zz.....
++#+++++++++++++++++++++++++*****iixzMWWW@@@WWWMxMxxWWz#xzznzMxz#zM+M.;#zM#x@@@MMz.ini.M;.....`.+````````#z+nx#n#z***+zz#i,.
###+++++++++++++++++++++++*+*****i;WWWW@@xz##+nWWMWW@Wzzxzxx@Wxz*n:;@+#nxn#z#++#zxxM#++x`.`....+,``````,*x#n*z#+Mx#**#znz;#.
#+###+###+++++++++++++++++++*****inMM@W@M+*;::;#x@@W@xxMxW@@W@xzz*i;,.`````......`.:+nx*``.....#`...`*++*+n*z+znznxz#*Mzz##.
######+++++++++++++++*+++++*****iz@xWWW@n:,,,,,;#W@W@MW@WWMx#;,.``````````````````````#.``````#:`...`#;*#z*#+x#z;;n#;#x*#z#.
######+++++++++++++++++********i;xWWMWW@#,,,...ixM@@@Wxz+i,.``````````````````````````z```````#``````;+#*xz#xMzMn*iWxz*#iz+,
+###+++++++++++++++++++**+***ii;inWWMW@@;,...,nnnx@@@n#:...```````````````````````.``;i``````i;`.`````zz#xzxzzxxxx+;*+i##+,#
+##+++++++++++++++++*+*******iiz@MWxWW@@,,,.:znMMMzWM#,.`````````````````````````````z```````+````````;zznxxxxW+zz;*ziiix*,;
###+++++++++++++++++++*****ii#WMi:WnWWWW,..;nxM+xMM@W;...```````````````````````````:z``````.#```````.z#z*+*#z+zWnz;z+MzMii#
#+++++++++++++++++++******i*Mx;...MnWWWW:.;nzxxWWMW@M``````````````````````````````.xi``````;:```````#*#z#+*#*zWW@x*;iMMni*z
++#++++++++++++++++*+*****x@*,,,,,MnMWWWi,xzMMxxxMW@i`````````````````````````````.zW.``````i.``````:iiznxnzznxznMMnz#*M#;*#
#+++++++++++++++++*++**i#@M:.,,,,:MnMMW@*nnx#xWMWMzM;```````````````````````````z;+#nn+.```::```````,#iz#+nxni:*#MMWWn+nz;*;
#+++++++++++++++++****i+@#,,,,,,,ixnMMW@MnxzWWMWn*#x:```````````````````````````x`````..```,*````````,zz*nzzxn+;znWMWMMnx##i
++++++++++++++++++**i*nWi,,,,,,,,+xnMWW@xMMzxM@n*.*x*```````````````````````````z````````:#:,``````````+*xzMMWx*zMWWxn#znMzi
#++++++++++++++*+***n@W;,,,,,,,,,znxMWWWxWMnxWM+..inz```````````````````````````*;##*.````.#+``````````:n+n**MWxWWWzMx#znn#*
#+++++++++++++****n@WWi,,,,,,,,,.xzxMWWWMM#MM@+:`.*#x````````````````````````.izM+:```:i```.#+`````````i++z#*zxxWxnxn#MxM+n+
#+++++++++++++*+nWni++,,,,,,...,.WnxMWWWW@MxWn*...+#M;````````````````````.;zMz:```````,*,```##.```````*;ni##zxxx+nznM+n+zz+
++++++++++++**#Mn;:i#,,,,,,;i*++z@nMMWW@WWWM@+:..,:*nn``````````````````,zWn;+:`````````.#:```zz,``````i;izizxzxzznnn*z+niz+
#+++++++++++*+*:;+*n,,,,i*++++++x@nMMWWW@WW@n+..`,.;zWz;.`````````````ixW#,```:i`````````i+:``.n+;`````;+++x*+#xn+*nzz#niiz+
#++++++++++*z*::,,z:,:*+++#++##zMWzMMWWW@W@W+i`.`.`,zMn##*,````````.*MM*.```  `.i.```````i**i``.n+i.``````.,x##+#z##*zM#+*#+
#+++++++++*n+::,,i*:*n#+++##zznnWMnMWWWW@@@n#+*i;.``+nW#*+nn*:,,,,iMx;````` `````;;````.i**+z+``:n**,``````.#i+z#z#####*##*+
#++++++++*x+;*,,,n*xx#+++#znxWWWWMnMWWWW@WMxxxxxnzzxnzWn#+++nMWxnM@*;`````````````,;``.i***##n#,i+#**;;;;i**+#;++#*;*z***++#
##++++++*nn#z:,,+@M#++++znWM#;,xWxnMWWWWMMWWMW+;zMMMMWMMnnzz#zxM@W:`,i`````````````.,.****+##zxz**++*********+#***#+z****++n
+#++++++#Wnz+*i,+M++++#nMz;....M@xnMWWWzxWWWMWxnWWMMWxW@MnnnnnxWW:```.*.````````````,+#***+##*#x#**#+i*************+******zM
#+++++++Wz#i,,;++W##+#Mz,`.....i@xnWMW**MWWMMMMWMMMMWi*@@@WxxxWW:.`` ``*,``````````,*i#+*#z#+**+M+*iz********************zMn
#++++++Mn#;,,,,,*Wz#zx;``......iWnMxMWnMWWWMMMWWWMWMWWnW@@@@WW@;```````.*,````````,****zzzzz****+M**+z+*****************#xzx
++++++zM#;,,,,,i#xxz#.`........+WMxMWWWWWWW@WWn#zM@@WMW@@WM@@@;..````````;:``````.*****+xzz#i****#n*izz*****i**********znzxM
+++++#@n:,,,,,:##nMi...........x@MMWWWWWWxnnnz;```:#@@W@@Wz@@*.```````````;;````.**i***+zn#i*ii***n#*in#i**i*********zxzzxW+
+++++WM;,,,,,,+z#x;......;i**+#@n#WWWW@n.i+zx#.`````.#@@@@@@;;;````````````:*```******##zn;****ii**x**+x+ii*******+nxnznMW+*
++++M@+:;ii:,:#znz,...,i+++**+M@#xWWW@+.`*+nn*``````.`;x@@@*``*:`.``````````;+`i*****+#zx;*****ii*+zz**nz******+zxxnzzM@x+*+
+++Mz::,,,,i++#zW:..:*++++###zWMMMM@M;```+#M#,`````````*z@z````*,.```````````;z******zzxi;*+******+#x***x#+#znxxnzzznWW#i*+#
+#x+:,,,,,,,,znx+,;+###zzxWWWWxWWxWn.```.++M+.`````````;#W,`````*.``````````,*z#****#zn;,**+*i*i**+#nn**nzxxnnzzzznM@@zi*+##
zxi::,,,,,,,;+zM*#zzzzxMnnnW+WxWWWn..````++M*.`````````,Mi.``.```*.````````;***n+*+znn,`i***z***i*+zzM+*#zz#z#zxWWWWW+W+**#z
i#nz#;,,,,,,+#zM#znnxz:.+#n;;WWW@x`````.`*#M*.`````````in```.````.+.`````.i*****n#zx#.`:*****#***+#zzxz#zMMMxMWMxnnW+.#W+*+z
nz+;;+nz;,,;++zMzzxn:..*#n:`n#@WW:````..`;+M+`````````.x,`.```````.+.```:******+nMz,``.******#***+z##nnzxWMnn#+*+#xW*,.nM++#
++#n+:,iMx+z+++Mzn*...:#n#`.Mn@@i````````,#x#.````````*z`.``````````*`,******+nM#,```.i*****iizi*+zznWxzMz#*i***#nMxz+:,xx*+
::::iz#nMMMW@Mzn+.``..+#M.``MMW@:`````````*x#:```````.Mi,.``````..``,++****#xn*.`.```;*********#*#zzWnzzWz******zxWxnz#;,Mz+
#zxx#*::,,.,;#W@*`...:#M;.``zM@x:`````````;n#*``````.+*`+.```.````.i****#nn*,`.```,::*i********z##zMWWMMn+*****#zMWWMxnz+:M#
*;:,,,,.......,inM*..iz#````#M@z;`````````,zz#;**;,`:x...*.`.```.i+++#zn*,`````````i#***********nzMzzznz#*****+#xM*+zMWMn#ix
::,,,............,#x;*W:````+W@#;.``````.`.zz###znxx@*```.i```,ii;,...`.;..```....:*#+*******i+#nMnzz#zz+*****+nMni**+#nWWxz
::,,,,,,,,,,....`..,nxx.````*@W+i````````.`+###nz,.+n`..`..``...```...``,i.`.````:***n********+zMx#+++**i****+#xW***++##zznM
i:,,,,,,,,,,,.....`..iM:````:#W#*.`..```..`*#zx;.i#z.,+*;..`.``.......`..,*.....;*****n******zzMx+***********+nxMn*++#znnzz#
n+:,,,,,,,,,,.........,x*```.MW#x,...```..`+x#.;#:ixn#;.....;..`..........:i...i******+#***+#zMx+************znMiM#++##nnnnn
xzz*:,,,,,,,...........`*+.`.:x#x#.`..``.;xx:,+;.x@z.`..`````*,.`..........;:,****++***z++##nWM*************+zxM*+x++#znnnnn
:zzzz##########+i,..:+##MMMz:;x##xi..`.+nx*,+i..n#,`..````..`.+.............#+***#+*****n+znWM+*************+nW@W*n#+#zznnnx
,,+zzzzz##zz#zzzzz+xMxxMWWWWMzM#z#z:.,+;i.ix:.##,```i```.......*..........,*+z*+z#**++++#xnWW#*************#zxnznMzn+#znxnxn
,,,;#xxnzz##zznznWMxMW#inWWW*n@z##x+.+.*.+x:`*n..```,:..........i........i++++#zz++++++#zMWWnz+***********+#nM*++#zxz#znxnnn
,,,,,,:;znnMMxnxWxMWWWxzMxMW@n@n##x#;...+xi`.M,.`````i...........;.....:*++++zMn#+++++#zM@Wnxn++**********##M+*+#zzzzznnnnnx
,,..,,,,,.,:;#@WxWWMWWWWWMM@@@@Wz#nz#..ixn..++.````..,:...........i..,*+++++zMxn++++#znW@MxnMn#++********+#x#*+##zznnznxxnnn
,,,..........zMMz#WWWWW@WxxMWW@@n#nMi..#z,`:x..``.....,............ii++++++nMnnx++##nnWWMxxxMxz++***+**++#nn**+#zznnnzxnnxnn
,,,,........#MMW*#WWWW@WWMnxxWW@M#z@:.;zi`,ni`;`..................:+z+++++#Mnnz#nznnxW@MxxxxxMn##+++++*+zzn**+#znznnnznzxxnn
,,,,,,,,,..*MMWWMWWW@WWWWWMxxxWW@##M.`*#..*n.`i`.......,;.......:+++#n++++Mnnz+#xnnM@MMWxxxxxMn##++++++#zn**+##znznnzznznnnn
,,,,,,,,..iMxWWWWWW@WWWWWWWWMxxM@x#x..z,.in:.`:.........ii....,*#++#+zz++xnnnznnnMWMznxWxxxxxMx###+++##zx++++##znznnzzznznnx
,,,,,,,,.,xxMWWWWW@WWWWWWWWWWMxnW@nn.,,.,+*.`..,.........i*..i++#+##++zzzxnnnnnxMWnzzxxWMxxxxMxz##+##znx+*+#+###nznnzzznnnnn
,,,,,,,,.+nMWWWWW@WWWWWWWWWWWWWxM@M#....;z*....,..........*++++####+#++xMnnnnxWWxz#znxxWMMxxxMxzz##zzxM+*+#####zzznnnnnnnnxx
*,,,,,,,:xxWMWMW@WWWWWWWWWWWWWWWM@@+....;xi..............;+nz#+########MxnxMWWx###zznxMWMMMMxMxzzznnxx++++#####znnnnnznznnnn
#i,,,,,.#nxiiMW@@WMW@@WWWWWWWWWWW@@i....ixi.....;......:*###xz########MxxW@Wn#####zzxxMWMMMMMMxnxxxMn++###zz#zzznnnnnznnnnnx
##;,,,,,xnM+xW@xWMMMWWW@@WWWWWWWW@@*:,..in*.....:*...,*+++###xz######xWWWxz######zznMMMWMMMMMWMxxMWz*++##z#z##zznznxnznnxnnn
#+#,,,,*nxWWWWW+MnnMWWWW@@WWWWWWW@@xxn*,*zz......i:.i#+#+#####nn####nWMzz#z###z#zzzxMMMWMMMMMWMxWW+**+#zzzzz#zzznnnnznnznnnn
z##+,,,znMMMM@n#nxnnxWWW@W@@@WWW@@M,.;nn+#n,......i+##+++######znz#n@xnnnnznzznnnxxMMMWWMMMMWWMWx***+##zzz#z#zzzznnnnnxnnnnn
zz##+;,xnMMMW@#i;MMMM#MMWxzx@@@W@W:....;n#n*......iz#+#######zzzzzM@MxxxxxxxnnxxxxxMMW@WWWWWWW@#**++##zzzzzzzzzzznnnnnnzznnn
z#####+xxMMMWx#,.zWMx+xnxM###x@@@W#+:....#x#i....:########zzzzzznWMW@MxxxxxxxxxxxxMMM@@@WWMWWx+***++##zzz#z##zzzznxnnnnzznnn
Mzzz###nMxMMWz#..;WMWWWMxW,:*##x@@Mzn*,..,nM#*..,++#+nz##zzznnMMWMxxxMWWWWMMMMMMMMMW@z***********+++#zzzzzzz##zzznnnznnznnnn
WMnnnz#MM##M@z+...nWMWMMMWi..,*zzW@i,zz:.i+nM#+;+#####zznxMW@WxnnxxxxxxxxxxMxMMMMMM@#i***++**+++++#+#zzzzz#z#z#zzxnnnnnnnnnn
#WWMxxn@@nnW@n#,..;WMMMMMMM....,*#n#..+x*#++xW#+++####M@@WMMWnnnxMMxxxxxxxxxxxxxMMW#****++++++++++####zzz######zznnnnznznnnn
+#@@WMx@@@@W@xn#i,.nWMMMMMW+.....,iM,..#x+++#MMz+###n@@MxxMMnMxMWWMMxxxxxxxxxxxMMW#***++++#####+#+##z#zz#####z#zznznnznznnnx
+xMMW@W@@@@@@nz#zz##WMWxnWMW,......;#..:zn+++#xxn#nWWMnnxMMnxMWWWMMMMMxxxMxxMMMWW*i**++++############zzzzz###zzzznnnnnznnnzn
zMMxzxM@@@@@@Wz#:;+znWMM#WWWz.......#i..*zn++#zz#xMMnz#xMxnnWW@WWWWMMMMMMMMMMW@M*i**++++++#++###++###zzzz######zznnznnznxznn
x#;+zzM@@@@@@@Mz##i:inWWWWWWWi.......n;,*+zn+++x#####znWxnnMW@@@@@@WWWWWWWWW@W#****++++#+#+####+######z####z#z#zznxznnzzznnn
i+,*zxWzzxxW@@@Wxnnz##xWMWWWWM:......,Mz+##zz+##MnnnxWWnnnMWW@x+ii*#zznMMxn#+ii***+++++##++##########zzzz##z##zzznnzznzznzzx
#.:znWz###xnM@@@WWMxnnzx@WWWWWM:......,nn++#n###MWW@@MMxnxMW@Miiiiiiiiiiiii*****+++++++#+##+++#+######zz###z#zzzzzzznnzzzzzz
,.+zW#,,*z#zzzzznxMWWMMxW@@nWWWW*,......*xz##x##xMW@@@MWxxW@@#iii*ii*i*i******++++++++++##+####+#+####z#######zz##zznzzzzzzn
.:zxx,...+#####z#znxx@@WMW@xn@@@W#*;,....;MWMWzzWxW@@@@@@WW@@*i**+*********+++++++++#++#+++############z######zz##nznn#zznnn
.+zM;....,######z#nnxWxWW@@@@@@@@W###i,.,zWW@@W@@@@@@@@@@@@@@i**++++*+++++++#++++++#+####+##+########zz#######zzzzz#znzzznzn
.#x#......:++####znxMMnMxzxW@@@@@@Wz#++i+WWWnM@@@@@@@@@@@@@@@+*+++++++++++++++++#++#+####++##########zz##zz#zz##zzzzznzzzznn
izx#*:.....i++###znxWxnMnzznMW@xn@@Wn+++xWWWxW@@@@@@@@@@##@@@#++++++++++++++++++#+##+#+#+#############z#z##zzzzzzzznzzzznzzz
#nx#++i.....*+++#zzxWnxxzzzzxM@@MW@@@x##WWWW@@@@@@@@@@@@@@@@@n*++++++++++#+#++++#++#++##############zz##z##zzz#zzznznnzzzzzz
zWn###+i....,+#+#znMMnnnnnMW@@@@@@@@@@Wx@@WWW@@@@WMMMMMWW@@@@n++#+++++++#+++#+####+#+##########+#####z######z##zzznnzzzzzzzz
nn##z#++i....:+##zxMzxMW@@W@@@@@@@@@W@@@@Wn@@@xM@MMMMMMWMMW@@x++#+++++++++++#++##++#+###+#############z#######zzznnzzzzzzzzz
nnM#nxn#+i....*##nMMW@WWW@@@@@@@@@@@nM@@@xn@@Mn#WMMMMMWznnM@@M*+#+++++++#+++#######++###############zz#########znnnnzzzznnzn
#x#x##zMM#i:*+zxMMnM@WWW@@@@@@@@@@@@@@@@@@W@@nn*xMMMMWnn#nMMWW*++#++++++############++########+#####zz#########zzzzzzzzznnzz
nn#x#znnnMxnxMxnznxM@@@@@@@@@@@@@@@@@@@@@@#@@nx;iWMMMWzn#nMWz@z+++++++++##+#########################zz##########znznz#zznnnn
n+zMn#**Mxxnz#nxxxMMW@@@@@@@@@@@@@#@@@@@@@@#@Mn;:#MMMMzxMMM@nnW++#++++++######++#+###################z##z#######zznz##zznzzz
xi#x#n#z###nxxxxxMMMW@@@@@@##@#@@@@@@@@@@@W@@Mn;**MMMMnnWMMMWnMn+###++#+#################+##########zz##########nnnnzzznnnzn
x**WMM*xznnnxxxMMMWWW@@@@@#@@@@@@@@@@@@@@@##@Mn#::+MMMn#MWMznzWW++##+#++###########################z#####z#zz###zznn#zzznzzn
z##xnM+xnnnxxxMMWWW@@@@@WMMMMWW@@@@@@@@######WMi::;MMWnzxxnnnWMWn+#+###+#######################z####zz####z##z#zznnnzzzznnzn
##xnnnnnnnxxMMWWWW@@WMxxMMMMMWWW@@@@@@@@####@Wni:::MMWxzMMxWz#xWW#+++###################+######z###zzzz##zz##z#znnnzzzznnzzn
##MnM*MxxxMMMWW@@WxxxMMMMMMWWWMWWW@@@@@@@@@@#Wnii+:xMMxxMW@z##nMWM++##############################z##z###zz##z#zznzzzzzzznzn
znxxMiMxxMMWWWMnnxMWWWWWMWMMMWMMWWWWW@@@@@@@@@x#i::nMMMxznWM#zxxWWn+#############################zz#zzz##zz#z#znnnzzzzzzznzn