######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
#################################################################@Mnz+*ii;;;;ii*+znM@#################################################################
############################################################@n+;:;*#zxMWW@W@WWWMxz#i;:;+x@############################################################
########################################################@n*:;+xW@@WMxxnnzzMMxWnnxxMW@@Wn+;:*x@########################################################
###################################Wn#++#x@##########@ni:+x@@W@n##znxxMWWzxxnMzMMxnz##n@W@@x+:in@##########@x#++#nW###################################
################################@z;;#nxxn+;;n@###Wn+i:#W@WxMM+@zM@WMxxnzWnxxxMxWxxMW@Mz@+MMxW@M#:i+z@###@n;;+nxxn#;;z@################################
###############################n:#@###WMxM@W+;nMi;#xM#@x#znz@#Mnxx#nMMWnMxxxxMxxnMn#xxxM#@znz#x@#Mx#;*Mn:+W@MxMW###@#:n###############################
#############################@i*@#@WWW@Wxz#zWW**x@MW@##@@W@#@zxMnMn@nnMxxxxxxxMxzx@nWnMxz@#@W@@##@WM@x**@Mz#zxW@WWW@#@*i@#############################
#############################M,+nW@Wnz#znx#+i#@#x#nMxM@Wn#WzMnzWz@zW++nMxxxxxxMn++Wz@#WznMzW#nW@xMMn#M@@#**#xnzzznW@Wn+,M#############################
###########################@xxxx#;;z@Wnzz#nn*i*z*nx#z@MM@xxxxM#@#@z@++nMxxxxxxMz++@z@#@#Mnxxx@MW@z#xn*z*i*xn#znnW@z:;#xxxM@###########################
#########################Mi:*+i:*M@+:x@nznzzx#++xz##@M@MnWzWz@+WzWz@WMzWxxxxxnM@WW@zWzW+@zWzWnM@M@##zx+##Mzzznx@x:+@M*:i+*:iW#########################
#######################@+;M@MMW@x;iMW;#@nzzzzMzx###WMxnWz@z@#@#MnMnzz#zWnMxxMx#zznznMnM#@z@z@nWzxMW###M#M#zzzn@#iWMiix@WMM@M;+########################
######################@i#@xzxxxzxWM;*M;n@nnzzz@###n@*nxn@WxMnMnnMxWWW@@MnMnxx@@@@@MWxMnnMnMxW@nxn*@n+##@zzzzn@z;Mi;MWnzxxxzx@#i@######################
######################+#@zxnii#+xnn@x;;W#MzzzzM###Wnn,*xx@nnMnMzW#xnz###x@WWxn###znx#WzMnMnn#xx*,nnW##+MzzzzM#W;;xWnnx+#iinxz@#+######################
#####################@:#zMn;,ii.*zxzxW@@M@zzzzMn#+@M:;nxz@M@MzW+@nxMW@@@MxnnxM@@@WMxn@#W#M@M@zxn;:M@+#nMzzzz@W@#Wxnxz*.*i:;nMz#:@#####################
#####################M*Wz#:+:i*.#:ixxnzxx@nzzzxx##@#,n*nxx#zzn@W@Mxzz@@+iiiiii*@@zznM@W@n#n@xMn*n,#@##xMzzzn@xxznxx;:#.*i:+:#zW*M#####################
#####################M*Wn*.z::+.#:i*,xnMx@xnzznn##@i++zixz@@@Mz+iiiz@xxMz*ii*zMxx@zi;i*zM@@@zxiz++*@+#nnzzzx@xMnx,*i:#.+::z.+nW*M#####################
#####################@:@zx.+;:z,#i+*:z;z,#WzzznM##W+n*z+zM@M@n+**#Mx@@@WWMxMMWW@@WxM#**+n@M@Mz*z*n+W##MnznzW@,z;z,++*#,z:;+.xz@:@#####################
######################*nMn*,#:z:+**#,niz:W@nzzzM##xxzzin+z@nMW@####@MMWW@@##@@WMMM@####@WMn@z+ni#nxx##Mzznn@W,zin,#*++:z:#,*nMn*######################
######################W:@zM,+*++;#iz,zin#x@xzzzM##n@#n;zni@zx@#####@WW@#######@@WW@#####@xn@inz;z#@n##Mnznx@x+n*z,ziz;+++*:Mz@:@######################
#######################+#Mnn,n*n:niz:*##Wz@Wzzzxx####n;zn#xW@####WMMW@@@##@@##@@WWMMW####@Wx#nz;n#@##xxzznW@zW##i:nin:n*n,xnM#########################
######################W:WMn##;n++#*++,niMz@#nnzxM##Wzz*WxM#####@xMMMW@@@##WW##@@@WMMMx@#####MxW*zzW+#Mxzzn#@zMin,++*#++n;#znMM:@######################
######################+nWzM#iz*zz*MxM:;z+Mz@MznzM##xx#WzM##@@#MxMxM@@W@@@#MM#@@@W@@MxMxM#@@##MzW#Mx##MzzzM@zM+z;:MxM*zzizi#MzMn+######################
######################iWnM;:z+n#nWzznn,*z*MW@nzzxz#z@MnW#@W@@xxxMM@WW@#W@#xx#@@#WWW@MMxMx@@W@#WnM@z#zxnzn@WM*z*,nnzzWn#n+z:;MnWi######################
######################+xxxn+:+zzWzW@xx+,;zMx#xzznx##@M@#WW@@nMxMM@MMM@WW@@xx@WWW@MMM@MMxMx@@WW#@M@##xnnnM#xMz;,+nx@WzWzz+:+nxxx+######################
######################Mi@zx:+z#nMn@z@nx+:iMn#WzzzMz#x##WWW@xMnMx@MMMW@WM@WxxW@WW@WMMM@xMnMx@WWW@#x##MzzzW#nMi:+xn@#@nMn#z+:xz@;M######################
#######################ixMnx###zMxMn@@nnxxzW@@xzzxxzz#WMW@MMnMx@MMxM@MMM@MnnM@MMM@MxMM@xMnMM@WMW#zzxxzzx@@Wzxxnn@@nMxMz###xnMxi#######################
########################+@nM::*+Mn@@zM@WMM@n+@MzznM#nWWM@MMnMx@MMnMWWMMM@Mxxx@xMMWWMnMM@xMnMM@MWWn#MnnzW@+n@MMW@MzzWnM+*::Mn#+z#######################
######################W:@MWzM#zzWz#WWW#WM#*;i@WnzzM#nn@@xWxMxWMxxMM@xxMMMxnnxWMMMx@MMxxMWnMxWM@@nn#MnznWWii*#MW#WM@@nMzz#MzW@@:W######################
######################;MMz#nM#z##@###WWMi;;;;n@Mzzxnzn@MWxMnMWnxnMWMMnMWMxxnxMWMnMMWMnxnWMnMxWM@nznxzzM@n;;i;iMWW###@#zz#Mn@zMM;######################
#####################z+@#@@xM;i#WxxW@#@ni;;;;*#WnznM#xx@xMxx@nMzMx@nxxn@MxxxxMWxxxn@xMzMn@xxMx@xx#MzznW#*;;;;ix##@WxxW#i;MxMx#@+######################
####################M:@zM@@zM##MxnMn#nW#W*;;;;MWxnzMxxn@xMx@xxnxxWMxnMn@xxnnxx@nMnxMWxnxxM@xMx@zxxMzzMWM;;;;*W#Wx#nMnxM##Mz@@Mn@:M####################
#################@+:iM#@Wxzxn#MM#Mn@Wn#x#@#;;;z@MnzxMzxM@xWWnxzMn@nMnMx@nnnnnn@xMnMn@xxzMnWWx@MxzMxznM@z;;;#@#x#nW@nM#MW#nxzxW@#Mi:+@#################
################z:z@WxnznxMxzxW#xWxzxnWWx@#xn#W#@xzzM#Mn@M@xMzxnMMnxzMn@xxxxxx@nMzxnMMnxzMx@M@nM#Mzzx@#W#nx#@xWWnxznWx#WxzxMMnznxW@z:z################
################*@MznMnxzz**xW#nM*nnnMWzxzMxnM@@WMznxnnnW@WMxzxn@xMzxnxWnznnznWxnnzxx@nxzxMW@WxnnxzzMW@@MnxMnxzWxnnn*Mn#Wx**zzxnMnzM@*################
##############W;@nnM#zi,z*#n@zzMznxWMWnMnxxMMz@@@WnzzM#Mn@xWxxnn@zxnxnMMxnxxnxMMnxnxz@nnxxWx@nM#MnznW@W@zMMxxzMnWMWxnzMzz@n#+z,iz#Mnn@;W##############
##############zzMnzz*iz+,#z@zzMnzzMnxxWnnnnnzxWM@@MzzMnnn@WMxMxWxzxzxnWxxnxxnxxWnxzxzxWxMxMWWnnnMzzM@@WWxnnnnnnWxxzWzzzMzz@z#,+zi*zznMzz##############
##############z#Mx*:z+i+zi@nzWzizMxMznWMnxxxzMnM@@MzzxnzMn@xMMn@MnnzxzWxxzxnzxxWzxznxM@nMMx@nMznxnzW@@MnMznxnnMWnzMxMzizW#n@iz+i+z:*xM#z##############
##############W;@zx:,+z**@MnW#*n#WnMnnx@WWMnMWMxz@WxznM#znWWWnM@nMnnxn@xM@@@@Wx@zxnnMn@MnMWWnz#MnzxW@zxM@MxMWW@xnnMnM#n*#WnM@+iz+,:xz@;W##############
###############+zWzM;,;zWWnxMz##@nxnnxWxxMxW@nnzxM@W#znx#nz@@MWWxMzznz@@MMMxMW@@znznMxWWM@@zn#xnn#W@Mxznn@WxMxxWxnnxn@#zzMxnWWz;,;MzW#+###############
###############@,@MnW+:n@WMMMM+MxxnnnMxWnxWxWxnnn@@MxzzM##nz@@@WMMnxn@WMMxxxxMxW@nxnMMW@@@zn##MzzxM@@nnnxWxWnxWxMxnnxxM+MMMMW@n:+WnM@,@###############
###############W;@@nMizx#@WWzzMnMxnnnWMnWWxWMxnxnWM@Mnznx####M@@@#@@#@xxM@##@MxMW#@@@@@@Mz###xnznW@M@nxnxM@xMWxMWnnnxMnMzzWW@#xziMn@@;@###############
################zM@nM#ix###WWn#M#xMMMWWxMxMWxxnnMxM@WxnzMM####nMWWWW#Mn#W#@##@Mxx@WWWWMz####xxznxW@MxMnnxxWMnxxWWWMMn#M#nWW@##x*#Mn@Mz################
###############;@x@zz;n@####@Wx#x@xMMWMxMWxWMxnzxzWM@MxznMz######zx@MM++z@@@M#+#MM@xz#####+zMnznM@MWzxnnxMWxWMxxWMMx@x#xW@####@n;nz@xW;###############
##############Mi@xMnn#WzzM@##@WMMxMznMMMWW@x@@xxxxWz@WMx#zMx###z#+n@Mxn+zMMMMz++nx@z##z###xMz#xxW@zWxnxx@@x@WWWMMnnMxMMW@##@MzzW#nnMx@iM##############
##############+nMMxM+Wxxxz#nW##W@nxznnMWx@MWnx@nW@MMM@WxxzzxMMMzxzx@Mx@nxMxxMMxMnM@xzxzMMMnzzxxW@MMM@Wn@xnMMWxWMnnzxz@W##Wn#zxxxW+MxMMn###############
##############;@zWxMMM#WMMMz#zW@@xnMnnWzxMxnxnMxM#WxM#WWMxz#znxnxxM#Mn#@WMxxM@#@nM@MxxnxnzzzxMWW#MxW#MnMnxxxMxzWnnMnx#@Wz#nMMMW#WMMnWz@;##############
#############W;@##xM@#xzzxnMMz#n@#WnMWnxWxnnnnMnMnM#@##WMWWxz#zzzzn@Mn###MMMM##@nx@nzzzz#zxMWWW##@#WnMnMznnxxWxnWMnW#@n#zWMnnzzx#@Mx@#@;W#############
#############z#W#WM@nnMz**#nx@M##@#@xxxxWnnxxxnMzxnn@W@@@WWWWWMxnzzWMMM##@xxW##MMMWzznxMWWWW@@@@W@nnxzMnxxxnnWxxxx@#W##M@nn#**zWnn@M#nM#n#############
#############*M@WW#Mxx++nz*+Wnx@WxM#Wx#xWMxnMMWMxW#W@xnMMM@@@@WWWMWW@Mn@@W##M#@nM@WWMWWW@@#@MMMnx@W#WxMWMMnxxWx#nW#MxWWnnW+*zn+#xxM##MnM*#############
#############:@znW@WxMMz+n@WnxMxxxn@xn#xWzzxWn+xnnn@WxMzznn#zxM@##@@#WMnMz++WMnMM#@###@Mxz#nnzzMxW@znnx+nWxzzWx+xM@nxxxxxnW@n+zMMxW@Mzz@;#############
############@;#WMn@WM#W#xMnnxnnWnnxMxz+xW@@Wzn#+W#W@MWnznn####+**#znx@MMMz#znMxW@xnz#**+####nnznWM@W#W+#nzW@WMx+zxMxnnWnnxnnMx#W#MW@nMW#;@############
############x+WnxW@@WxzMznxznnn@nnnWn##xxnnxn#zxnz#MWMnnn####+*******z@@MMMxMM@W#*******+####nnnWWM#znxz#nxnnxx#znWnnn@nnnnxx#MzxW@@WxzW+x############
#############nxzxz#@@WznWxxnxMMMMxnMn+*#n@zxnn+W#W##WMMxz###+*********+nW@@@@Wn+********++###zxMMW##M#W+nnxz@n#*+nMnxMMMMxnxxWnzW@@#znM@n#############
############iMnMWW@@#@WzWxWMMxWMMMxWn++#MMWzxx@zn@@@@#Wxz##++****++##zzzznxxnzzzz##++****++##zx@##@@@zz@xxz@MM#++nWxMWMWMMMWnWzW@#@@WMxxMi############
############;@zWzzzzM#@@nxnxMWxWxWWxx*i:inWWnxMz@#@@@@#@Wn#+****+++##zzzznnnnzzzz##+++****+#nW@#@@@@#@zMxnWWni:i*xnWWxWxWMxnxn@@#Mz#znnz@;############
############:##@##@@W##@nnnxMMWzMWn*,i+++nn@MxxW@W**nWWW@#Wn+***++++#z##znnnnz##z#++++***+nW#@@WWn**W@MMMM@nn+++*,*nWMzWMMxnnn@##W@@WW@##:############
###########@;@#@zW+#n###xxnnMWnMxMn*#**#++nx@xn@M*iiinM@@W@@#Wx#+*+####znxxxxnz####+*+zxW#@@W@@Mxiii*M@nx@xn++#**#*nMxMnWMnnxM###x#+z+@z@;@###########
###########WiWzWnM++n@W#@xnnMMMMMWnn++i*+#+nMWMWiiii#x###@@WWW@@@WMnz#zznxMMxnzz#znMW#@@WW@@@###x#iiiiWMWMn+#+*i++nn@MWWMMnnn@#W@x++WzWz@iW###########
###########x+WzWnWz#MWx@WxnnWMMMWWWnx*#+##+#n@@niiiiz#WW@M@@#W@WWWW@@#@WMxnnxMW@##@@WWW@W#@@M@WW@ziiiix@@n####+#*xnWWWMMMWnnxW@xWM#zWnWzW+x###########
###########n#MnMzWWW@MWxWnnxMnnxnMMWMxx#***in@#+iiiiM#MnxWWW@@nnxM@WWMWWW@@@WWWWMWW@Wxnn@@WWMxnM#Miiii##@ni**+#xxM@MMnnnnMMnnWxWW@WWWzMnM#n###########
###########zzMxWxnnzWMWWxx@xxnnnnxxxM@xx###+x@Wii*iix#W#zWMWMW@@M##zzWW@@WWWW@@WWzz##M@@WWWMWz#W#xii*iiW@x+###xx@Mxxxnnnnxx@xxWWMMznnxWnM#z###########
###########zzxzMMMMW@W@@#*W@nMnxxxWxx*Wnx#*#n@Wxz*ii+W@n#zWWWW@@@#WMWW#@xzzn#x@#WWxW#@@@@WMWz#n@W+ii*zxW@n#*#xnW*xxWxxxxMn@M*#@@W@WMMMMzxzz###########
############nWnnnnnnW@@nMMznMx@MnxW#n#xnz##nx#Wn#i+i*n@Wn#nWWWW@#@@M#z#M*iiii*M#z@M@@@@@WWWn+nW@n*i+i#n@#nn##znx#n#WxnMWxMnzMMn@WWznnnnnWn############
############n######@#@WxMM#xM@WMxMnn#Mxx##nnW@x+*i#i++z@WWxnnnzzzzM@W+*ziiiiiiz*+W@MzzzznnnxWW@z++i#i*+x#Wnn##xxM#nnMxMW#xx#WMxW@########n############
############n@WWWWWWWW@WMzMx*x@Wx#xxMxM++zxM@n*+ii*nzii**+zW@WMxM@#@#++#zz##zz#+*#@#@MxMW@Wz+**iizn*ii++n@Mxz++xxMxx#xW@x*xMzMW@WMWWWWWW@n############
############nx#zzzznnx#@WxMx+MM@Wx#MMx*+zMxM@+#ziiinnni++***#nM@W@@zn#@@xxMMxM@@#nz@@W@Mn#+**++innniiiz##@WxMz+*nMM#xW@MM+xMnW@#xnnnzzz#xzz###########
###########zzMx@@WWMMx@@@Wxz@z#W@WMMn#;+#xM@#MxMxii*MMx**++*i+zxWx#+*zx##M@@M#+n#i+#xWnz*i*++**xMM*iixMxM#@Mx#+;#nxMM@W#z@zMW@#@MMMWWW@nMzz###########
###########n#MnM#znnxzWn@@WWzxxzx@W@Mn+#zMx@xn#nMzii#MWx#*i+znnzx@@n##*i+####+i+##n@@xznnz+i*#xWM#iizMn#nx@xMz#+nM@M@nzxxzWW@@nW#xxnn#MnM#n###########
###########x+MnMx@MxWnWzW@@Wx#W#+W@@xx*+##xnz:*nxx*ii#nxMxz#+*z@@MMMM#*i*i**i*i*+MMMM@@z++#zxMMn#ii*xxn*:zxx##+*xx@@W+#W#xW@#WnMnWxM@nMnM+x###########
###########M*Wn@WM++xxMnMM#@W@zxW#MMn;+++#*#;##nxx+*znnz#+ii*znW+zMMnMzi*n**n*izMnWMz#Wnz*i*+##nnz*+xxn##:#*#+++;nMM#Wxz@W@#WMnMxx++MW@nW*M###########
###########W;#@@@@n+nMxxx@WW#WWMzxWn:+;#i+#:#znMWxMWxxxWz#+i+++M*+##xnWiin**niiWnx##**M+++i+#zWxxxWMxWMn##:#+i#;*:nWxzMWW#@W@xxx##+n@@@@@;@###########
#############@MMWW@M@MnWWn@*n#@WxnM#i;*:#**++nn##@xx+#nM#Wzi*+#Wi****z@+i+*++i+@z*+**iW#+iizW#Mn#+xM@#@nn++**#:*;i#MnxW@#n*@nWx@@WM@W@MMW+############
##########M;@nxWxnz@M#x#nzWi*##@WWWn+:+.++,+#*xxxxxz:#nnWM@W+z#@ii++*+Mn+i**i+nM+***ii@##+W@MWnn#:zxxxxxi#+,++.*:+nWWW@##*iWznWzzM@znxWxn@;M##########
##########iMMzWxWxz@@@@M#nWii##W@@@xn;i:+n#nnn#+n*##*#+xxxxxMxzWz**+*izMz*+**zMzi*+**zWzxMxxxxx+#*##*n+#nnn#n+:i;nx@@@@##i;Wn#M@@###xWxMzMMi##########
##########:@MxWMWM#x#W@zWnWii#@MWW@@xxnnxxMWWxx++;##+#+##xMMnzMWMz****#Wz++*+zW+*+**zM@MznMWx##+#+##;++xxWWMxxnnxx@@WWM@#i;WnWz@@#x#MWMWxx@:##########
#########@;#WWx@Mx*nxMM@WzWi##MM@z@xMWWWWMMMMWxM*;##*#+zxxMMMxnx@n*i**+zn+**+nz+**i*x@xnxMMxxnz+#+##;*MxWMMMMWWWWMx@#@MM##i@zW@MMxn*xM@xWW@;@#########
##########:#W@xWnWMxnxn@@z@ix@xM@xn##xxWMMxWMMWx*i##;##xxW@@Mnx@@@x+***++****++***+x@@@xnM@@Wxx##;##i*xWMMWxWMWxx##nn@Mx#x*@z@#nxxxxWnWx@W#:##########
##########*x@WnxMxW@xnxzM@@#W@MWxMxWxMzx#x+@WM@ni+++;#xx@WMnWW#xWMWWn*i+*iiii**i*nWWMWxzWWnMW@xx#;+++in@MW@+x#xzMxWxMMMM@Wz@@Mznnx@WxMxnW@n*##########
##########W:MWx##x#@xznMxn@W@WMWMx#x#x+Wx@xWxMWn*+i*#nxM*#W@xWxnWn#xW@@nzznnz#n@@Wx#nWnxWx@W#*Mxn#*i+*nWMMWx@xW+x#x#xMWMW@W@xxMn#x@#x##x@x:@##########
###########W;nWWzx@xMMxMxz@W#Mx@zM#WMWxM+zzxx@WMnn#xxMW;:znn@W@Wn@+i*MW@@MxxM@@MM*i+@nW@W@nnz:;WMnx#nnMW@xxzz#MxWM@#Mz@xM#W@zxMxMMx@xzWWn;W###########
############@;xMxzxxMM@Mx#zx@Wx@xWnx+zzxxxMxW@MWWxMMWWn,:nMnM#xxWxW*+MMM*zxxz*MMM+*WxWxx#MnMn:,nWWMMMWWM@WxMxxxzz+xnWx@xW@xz#xW@xMxxzxWx;@############
#############W:@@xz+x@#xMxxnnW@@+nnxMMMxxznzWM#xMMMMW@;:*xzn@@*i@nWx#MxWzzzzzzWxM#xWn@;*#@nzx*:;@WMMMMx@MW#nzxnMMMxnz+@@WnnxxMx@@x+zx@@:W#############
##############*M@MW#xWxMMxWx#Mz#WMxzxnMxWM@W@M@n@MW@@+,:znnM@WM#WWzWMMMMMnnnnMMMMMWzWW#M@@Mnnz:,+@WWM@n@M@W@MWxMnxzxMW@nMzxWxMMxWxz@W@M*##############
##############n+WMWxnxnnx#WM*nxMMWn#WW@WWxWxWM@@nM@#n,,#nnM#@WMM@Wx#M@@zWz**zWz@#M#xWWMMW@#Mnn#,,n#@Mx@@MWxWxWW@WW#nWMMxn*MW@xnnMnnWxW+x##############
##############@:@zW#xznxx@xWMxnxM@@WWnWx@W@@WMxWn@@x,:znnMn@@@xnW*zMznWWnMWWMnWWnzWn*MnxW@@xMnnz:,x@@nWxMW@@W@MWxM@@@xxnxMWx@Mxn#x#@#@:@##############
###############*xxx#@@zMxxMMM@xnn#M@@@@WMxnnxxMW@@x:innn@W+MW@Mnnz;x@WMM@MxxM@WMW@n;znnM@WM+W@nnni:x@@WMxxnnxMW@@@@M#nnx@MMMxxMn#@#xxx*###############
###############M*@#M@@nxMnzx#@xnxxnz@@nzznxMMW@@@n;#nxW@@Wnnn@Wxzn@MW+#x@WWWW@x++WM@nzxW@nnzW@@Wxn#;n#@@WMMxnzzn@#znxxzx@@xnnxxn@@M#@*M###############
################:@nxMx@WznxMWnWxxWxznx@W@@@@@@@@n#xM@@WMWWz#zMWWWW@@@x+x@#::#@x+x@@@@WWWMz#zWWMW#@Mx#n@@WW@@@@W@xn#xWxMWxWxxnzW@xMnn@:################
################z#@@zn:M@zxnMnMx#MM+xxn@@WMWWW#@@@@@M@WW@M+**z@WW@WMMMMMM@MW@MMMMMMW@WW#n*++M@MW@M@@@@@#WWWMW@@xnM+xM@xMnxnxz@M:nz@@#z################
################@:@Wn+izxWWxz#xW@xWxxxzWn@@WWWWWW@WxW@@W@W**i+@@iM@WMxxMxxMMxxxxxMW@Mi@#+i**W@W@@Wx@@WWWWWW@@nWzxxxWx@Wx#znWWxzi+nW@:@################
#################+n@zMxi+nWM@zMMnWxW@x#zMMM@WWWWW@@WWx@xM@*iii@z,*WMMMWxWWzzWWxWMMxW*,n@iii*@Mx@MWW@@WWWWW@MWMz#x@WxWxMMz@MWx*ixxz@z+#################
#################@:@WnnxM*#W#znxnxx@WMxxxxz@@@xnM@##@WW@x@ziiiWz;:Mx*xM+M@xx@M+MM*xM:;nWiiiz@x@WW@##@Mnx#@#nMnxxxW#xxnxnz@W#*Mxnn@@:@#################
##################+n@WWnznxM@@WnnxMMxWx@Mxnxn@##@@###WM@W@W*+in@x+xn+MWxxMMMMxxWM+nx+x@ni+*WWW@MW###@@###nxnxWWnWxxMxnnW@@MxnnxWW@z+##################
##################@:@zM@W@MxzM@@nxnM#xM@Mx+M@W@@W@WM#xWW@*@n#**@WMWWxzzW@MxxM@MzzxWMMW@**#n@*@WWx#MW@W@@W@M+xM#Mx#Mnxn@@xzxM@W@Mz@:@##################
#####################W#@zWxx@M@@WWnxnx@@nWW@nz@MW@@W@MWM@M#@nxi#@MzznM@nznnnnzn@MnzzM@#ixn@#M@MWM@W@@WM@nn@MWn@WxnxnWW@@M@xMWz@zW#####################
###################@:WnxM##M@@Wx#W@@nxMxMxMx#WMMWxW@@@nWWWz#@@xizW@#Wn*+******+*nW#@Wzix@@#zWWWn@@@WxWMMM#xMxWxMxn@@W#MW@@MWzMxnW:@###################
####################n*@#Wx@Mz@zx#n@@nxMnzx@zzWn@MxxM@@MWx@@z+@@M*+#+*ii*+*++++*ii*+#+*M@@+z@@xWx@@MxxM@nWzz@x#nxxn@@n#xz@#MMnW#@*n####################
#####################ixMz@nz@xxz#zxM@Wz@nWMzWxMWxxxWMM@WWWM@zix@@#iiii*+*++*+++*iiiiz@@xiz@MWWW#MMWxxxWMxWzWWn@nW@Mxz#zxM@z#@zMxi#####################
#####################W:@n#x#@zz:i+Mz@M@#n#MxWn@xxxWxnW@W@W@M@#iiz@#+i+*++**+****+i+#@zi;#@W@W@W@WnxWxMx@z@xM@n@@W@zM+i:nz@@@xn@:W#####################
######################z*@WW@nMz+##Mz#nx@W@WWxx@xxMW#MW+*+x@W@@ni;n@zi#*+*++++*+*#iz@n;in@@W@x+*+WM#WMxx@xMWW#W#xn#zM##+zMn@x#@*z######################
#######################in@xMn+i##zWz@@@nW@#@xWWxx@nz@+****+M@W@Wii@x*i+*+****+*+i*x@*iW@W@M+****+@zn@xxWWx@#@Wn@@@zWz##i+nMnWni#######################
#######################@:W#nW#;izzxxx@xx*i@Wx@MMx@zMzi******#M@@@xM@+++i*++++*i+++@Mx@@@M#******izMz@xMM@x@@i*xM@xxxzzi;#Wz#W:@#######################
########################M;@zM,+#z#nMxznz,+MWM@MxMMn@Mnii******#W@@@@W##xnz##znn##W#@@@W#******iinW@nWMxM@MWM+,znzxMn#z#+,Mz@;M########################
#########################*nMzM;zizzinzx:*#xWM@@WWWMWzxWzi*******#W@@#@WnzznnzznW@#@@W#******iizMxz@MWWW@@MWn#*:xzn*#ziz;MzMn*#########################
#########################W:MxMz:z*z*+*+:n*@@WW@@#@MWzzzxWzi*******#W#xnW@#@@#@Wnx#W#*******izWxzzzWM@#@@WW@@*n,+*+*z*z:zMxM:@#########################
#########################@:WnM:+*z:ziz:*+zW#@@WWM@@@zzzznxWzii******#MMz#zzzz#zWM#******iizMxnznzz@@@MWW@@#Wz+*:ziz:z++:MnW;@#########################
###########################Wn*:#iz,niz,zizi@##@W+z#@WnzzzznxWzi*******#MWxxxxWM#******iizWxnzzzznWW#z#W@###iziz,zin,zi#:*nW###########################
########################@:@zx.#:*i;zi#,zi#;zx+xz;#*n*WMzzzzzzxWnii******+x@@M+******i*nWxzzzzzzWW*n*#i#x+xz;ziz,ziz;i*:#.xz@:@########################
########################x*Wxi,#,#,i+;#.zix#nz,n++i##i+nWMzzzzzzxWn*i******+xWx+***i*nWnnzzzzzMWn*i##i++n,zn#xiz.#;+;,#,#,ixW*x########################
########################n#Mx:*;,#.;*:#+MnnnnM#ziz,n*z:n*M@MnzzzzznMx+i*******nWM#+xMnzzzzzzM@M*n:zin,ziz#MnznnM+#:*;.#:;*:xM#n########################
########################M*Wzz#,:#.:##MzxW@W@xnW;n:#*z;izzn@@WnzzzzznMM#i*******#M@MnzzzznWW@nzzi;z*#:ni@nx@W@WxzM##,.#,:#zzW*M########################
#########################;WxnMi,#,+MzxWx@nxWWxx#*+:zin:*Mn@@@#WnzznnznMMzii******+x@WnnW#@@@nMi:n*z:+*#nxWWxn@xWxnM+,#,iMnxW;#########################
#########################M:WMzxxMxzx@@zn@#x@x@zM:n:++*znz@nzx@##WnzzzzznxWn*i*******zW##@xzn@znz*++:n:Mz@x@xz@n#@@xzxMxxzMW:M#########################
##########################M:#@MxxM@z;MWzx@xzxxMx*;z,#*xzWW@WM@x+#M@xzzzzzznMx+i*******+xWMW@WWzx*#,z;*xM#Wzx@xzWM;z@MxxM@#:M##########################
###########################@#:*z#i:#x:z@nzWWzW@zx:*+#MnW@x@Mz*****+x@xzzzzzznMMzii*******zM@x@WnM##*;xz@nzWWzn@z:M#:i#z*:#@###########################
#############################@xznM###@*iWWzx@WMMzxxxzM@#Wn+*******i+MW@MnzzzzznxWx+i*******+nW#@xnxxxzMWM@nzWWi*@###Mnzx@#############################
#######################################x:n@x##M@WMMW@@x#*******i*zMMnznxWWxzzzzzznMMz*i*******+x@@WMMW@@xzx@z:x#######################################
########################################@*;M@x@zW#@x#*******ii+xMxnzznzzzW@@xzzzzzznxMx+ii*******#x@#W##n@M;*@########################################
#########################################@+`x#@Wx#********i*nWMnzznzzznW@WMxW@WnzzzzzznMWn*i********#x@@@x`+@#########################################
######################################W#;;#M@x#********ii#MMnzzzzzzzxW@MxxxxxxM@WxzzzzzzznMM#ii********#x@M#:;#W######################################
##################################@x*:izWWn#********ii#xWxnzzzzzznW@M#xMxxxxxxMxzM@WnzzzzzznxWx#ii********#nWWzi:*x@##################################
##############################@M#;;+x@Mz+********ii+nMxnzzzzzzzM@WxW@nxxMxxxxMx@@@@xW@MzzzzzzznxMn+ii********+zM@x+;;#M@##############################
###########################M#i:*nWWx#**********i+nMMnzzzzzzzxW@xMWnzz#MxMxxxxM#z#zznWMM#WxzzznzzznMMn+ii*********#xWWn*:i#M###########################
######################@M#i:*zWWxz+*********ii+nMMnzzzzzzznW@@x@#zxMW@@@nMnxxn@@@@@WMxz#@x@@WnzzzzzznnMMn*i**********+zxWWzi:i#M@######################
##################@n+;:*nW@Mz+**********ii+nMMnzzzzzzznM@x**n@#@Mxnzz##+Wnxx#z####znxM@#Wn**x@MnzzzzzzznMMn+ii**********+zM@Wn*:;+n@##################
#############@x#i:;+x@Wxz+***********ii+nMMnzzzzzzzzM@M+:*xx#;:i+nM@@@@@@@@@W@@@@@@Mn+i:;#xx*:+M@MzzzzzzzznMMn+ii***********+zxW@x+;:i#x@#############
##########ni:;*nW@Mn#+************ii+nWMnzzzzzzzzxWW#;in@######Wx#*;::;;iiiiii;;:;;*#xW######@ni;#W@xzzzzzzznnMMn+ii************+#nM@Wn*;:in##########
#########@:W@WMxxWxz+iiiii**iiii*#xWMnzzzzzzzzxWW#;in@################@@WWWWWW@@################@ni;#WWxzzzzzzzznxWx#*iiii**iiiii+zMWxxMW@M:@#########
##########;+@MzzzznxMMMMxnnnnxMMMxnzzzzzzzzxWW#;;z@################################################@z;;#WWxzzzzzzzznxMWMxnnnnxMMMMxnzzzzM@+;##########
##########@z:+WWnzzznzznnnnnnnnzzzzzzzznM@W#:;z@######################################################@z;;#W@MnzzzzzzzznnnnnnnzzzzzzznWW+:z@##########
############@n:ix@MnzzzzzzzzzznzzzzznM@M+:iz@############################################################@zi:+M@MnzzzzzzzzzzzzzzzznM@xi;n#############
###############M*:*n@@MxnzzzzzznnMW@x*:in@##################################################################@ni:+x@WMnzzzzzzznxM@@n*:+M###############
##################M+;;*#nMW@@@WMn+i:*x@########################################################################@x*:i+nMW@@@WMn#*;;+M##################
#####################@Mn#*i;;;i*#xW################################################################################Wx#*i;;;i*#nM@#####################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################
######################################################################################################################################################