nnnnnnnnnnnnnnnnnzzzzzzzzzzz#########+++++++++*+**************i*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*ii****************+++++++++++++++++++++++++++++
nnnnnnnnnnnnnnzzzzzzzzzzzz#z########++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***i************++++++++++++++++++++++++++++
nnnnnnnnnnnnnnzzzzzzzzzzzz########++++++++++***************iiiiiiiiiiiiiiii*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii****************++++++++++++++++++++++
nnnnnnnnnnnnnnzzzzzzzzz###########++++++++************iiiiiiiiiiiiiiiiii**+zn*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**************++++++++++++++++++++++
nnnnnnnnnnnzzzzzzzzzzz#########++++++++++************iiiiiiiiiiiiiiiiii**zMMWn+ii;;i;;;;i;;;i;;;iiiiiiiiiiiiiiiii**i*************+**+++++++++++++++++
nnnnnnnnnnnzzzzzzzzzz########++++++++++************iiiiiiiiiiiiiiiiiii+#zMWWWWxn*i;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiiiiii**************+++++++++++++++++
nnnnnnnnnzzzzzzzzzzz########+++++++++*************iiiiiiiiiiiiiiiiiii+xMWWWWWWWMxz*ii;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiii************+++++++++++++++
nnnnnnnnnzzzzzzzzzz########++++++++++***********iiiiiiiiiiiiiiiiiii*zxMMMWWWWWWWxMMn+*#+;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiii**********+++++++++++++++
nnnnnnnnznzzzzzzz#z########+++++++***********iiiiiiiiiiiiiiiiiii+#nxxMWWWWWWWWWWMMMMxxMM#;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiii**********++++++++++++
nnnnnnnnzzzzzzzzz########+++++++*************iiiiiiiiiiiiiii;;i#nMMWWWWWWWWWWWWWWMMMMMMMM+i;;;;;;;;;;;;;;;;;;;i;iiiiiiiiiiiiiiii**********+++++++++++
nnnnnnnzzzzzzzzz########++++++++********iiiiiiiiiiiiiiiiii;;;i+xMWWWWWMMMWWW@WWWWMxnnWMWMxi;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiii**********++++++++++
nnnnnnnzzzzzzzz#######++++++++***********iiiiiiiiiiiiiiii;;;;*nMWWWWWWMMxxWWWWWWWWxnnMWWMMz+i;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii*********+++++++++
nnnnnnzzzzzzzz#######++++++++**********iiiiiiiiiiiiii;;;;;;iinMMWWWWWWWWWWWWWWWWMMMMMMWWMMnxn+i;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii**********++++++++
nnnnnnzzzzzzz#######++++++++**********iiiiiiiiiiiiiii;;;;;i+nMWWWWWWWWWWWWWWWWWWMMMWMMWMMMxMMM#;;::;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii**********+*++++
nnnnnzzzzzzzz######+++++++++*******iiiiiiiiiiiiii;;;i;;;;i#zMWWWWWWWWWWWWWWWMMWMWMMWxMWWMMMMMMx+:;:;;;:;;;;;;;;;;;;;;;;;;;;iiiiiiiiii***********+++++
nnnnnzzzzzz######+++++++++++******iiiiiiiiiiiiiii;;;;;;;i+znMWWWWWWWWWWWWWWWMMMMWWWMMMWWMMMMMMMz;;::::::;;;;;;;;;;;;;;;;;;;;iiiiiiiiiii*********+**++
nnnznzzzzzz#######++++++++********i*iiiiiiiiiiiii;;;;;;;*zMWWWWWWWWWWWWWW@WWWWWWWWWWWWWWWMMMMMMn;;:::::::;;;;;;;;;;;;;;;;;;;;iiiiiiiii*i***********++
nnnzzzzzz########+++++++********iiiiiiiiiiiiii;;;;;;;iii#WWWWWWWWWWWMMMW@WWWWWWWWWWWWWWWMxMMxxxxi:::::::::;:;;:;;;;;;;;;;;;;;;;iiiiiiiii***********++
nnnzzzzzz#######++++++++*********iiiiiiiiiiiii;;;;;;ii*zxWWWWWWWWWMMWWWW@WWWWWWWWWMWWWWWMMxxxnxni:::::::::::::;;;;;;;;;;;;;;;;;;iiiiiiiii************
nnnzzzzzz######++++++++********iiiiiiiiiiiii;;;;;ii*+*znMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMxxnxxni::::::::::::::::::;;;;;;;;;;;;;;;iiiiiiiiii*********
nzzzzzzz######++++++++********iiiiiiiiiiiii;;;iiii*zMMMxWWW@@WWMMWWWWWWWWWWWWWWWWWWMWMMMMMxxxxMn*:::::::::::::::::;:;:;;;;;;;;;;;;iiiiiiiiii*********
zzzzzzzz#####+++++++*+******iiiiiiiiiiiii;;;iiii*+nxMWWMWWWWWWWWWWWWWWMMMWWWWWWWWWWWWWWWMMxxxxxxi::::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiiiii******
zzzzzzz######+++++++*********iiiiiiiiiii;;iiiii+#nMMMWWWWWWWWWWWWMWMxnzzzznxxnxMWWWWWWWMMMMMxnxxi::::::::::::::::::::::;:;;;;;;;;;;;;iiiiiiiiiii*****
zzzzzzz#####+++++++**********iiiiiiiiii;iiiii*+znxMWMWWWWWWWWWWWMMxnz###++####+#zxWWWWWWMMWMxxnn;:::::::::::::::::::::::::;;;;;;;;;;;iiiiiiiiiii*****
zzzzzz######+++++**********iiiiiiiii;iiiiii*+##nMMWWWWWWWWWWWWWWMxnzz##+++++*+**++nMWWWMWWMMMx+#:::::::::::::::::::::::::::;;;;;;;;;;;iiiiiiiiiii****
zzzzz#####++++++**********iiiiiiiiiiiiiiii*#zzznMMWWWWWWWWWWWWMMxnzz##++++********+#MWWMMMMMxn+#;:::::::::::::::::::::::::::;;;;;;;;;;i;iiiiiiiii****
zzzz######++++++*********iiiiiiiiiiiiiii*+#zzzznMMMWWWWWWW@WWWWMxnz###++***********+nWWWMMMMxx#*i:::::::::::::::::::::::::::::;;;;;;;;;;;;iiiiiiii***
zzzz#####++++++**********iiiiiiiiiiiiii*+#zzzzznxMMMWWW@@@@WWWMxnzz##++*******i*i***+MWMMMMMMMn+i::::::::::::::::::::::::::::::;;;;;;;;;;;iiiiiiiii**
zzz######++++++*********iiiiiiiiiiiiii*+#zz##zzznMWWWWWWWWWWWWMxnz###++*****iiiiii***zWWMxxxxxxzi:::::::::::::::::::::::::::::::::;;;;;;;;;;iiiiiii**
zz######+++++++********iiiiiiiiiiiiii*+#zzz#zzznnnMWWWWWWWWWWMxnnz###++***iii;;iiii**#MWMMxxxxxni::::::::::::::::::::::::::::::::::;;;;;;;;;iiiiiiiii
z#######+++++*+******iiiiiiiiiiiiiii*+##zzzzzznxWMMMWWWWWWWWMMxnnz###++**iiii;;iiiii*+xWMxMMMMMn;::::::::::::::::::::::::::::::::::;;;;;;;;;iiiiiiiii
z######++++++********iiiiiiiiiiiii**+##zzzzzznxWWWWMWWWWWWWMMxnnnz##++***iiiiiiiiiii**zWWMMMMMMn;::::::::::::::::::::::::::::::::::::;;;;;;;;;iiiiiii
#######+++++*********iiiiiiiiiiii**+#zzzzzzznnMWWWWWWWWWMWMMMxnnzz##+++**iiiiiiiiiii**#MWWMMMxMn;::::::::::::::::::::::::::::::::::::;;;;;;;;;i;iiiii
#######+++++*******iiiiiiiiiiiii**+#zzzzzzzznnxWWWWWWWWWWWMMMxnnzz###+++*iiiiiiiiiiii*+xWWWMMxxx*:::::::::::::::::::::::::::::::::::::;;;;;;;;;;iiiii
######+++++********iiiiiiiiiii***#zzzzzzzzzznxMWWWWWWWWW@WMMMxnnnz####+++*i;iii;iiiii*+nWWWMnzzM+:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;iiii
######++++*********iiiiiiiiii**+#zzzzzzzzzzznxMWWWWWWWMMWWWMMxxxnnznnnzz#+*iiiiiiiiii*+nMWWM#*ixn:::::::::::::::::::::::::::::::::::::::;;;;;;;;;iiii
######++++********iiiiiiiii**+#zzzzzzzzzzzznnMMWWWWWWWWWWWWMxxxMxxnxxxxxz#+****++**iii*nMWWWz*izxi::::::::::::,,:::::::::::::::::::::::::;;;;;;;;;;ii
#####+++++*******iiiiii**i**+#zzzzzzzzzzzzznnMMWWWWWWWW@@WWMxxxxnnnzznxxxz#+++#zzz#****nxWWMxziin#:::::::::::::,:,::,:::::::::::::::::::::;;;;;;;;;ii
####+++++*******iiiiiiii**+#zzzzzzzzzzzzzznnnxxMWWWWWWWW@WWMxxxnnnnz##nxxnz++#znnxnz#++xxWWMMx*;#z::::::,,,,,,,,:,,,,,::::::::::::::::::::;;;;;;;;;ii
####+++++******i*iiiiii**+#zzzzzzzzzzzzzznnznxnMWWWMMWWW@WMxxnnznxxxnnznxn#**#znzznnzz+xMWWWWM#;*#:::,,,,:,,,,,,,,:,,:::::::::::::::::::::;;;;;;;;;;i
##+++++++******iiiiiii**+#zzzzzzzzzzzzzzznnnnxxMWWWWMW@@WWMxnzzznnnz##zznz#**#znz###z##MMMWWMxn*+i:::,,,,,,,,,,,,,,,,,,::::::::::::::::::::;;;;;;;;;;
##++++++*******iiiii****+zznzzzzzzzzzznnnnnnnnMMWWWWWMWWWWMxnz#+++#######z+**+znnz#+++#MMMMMxzzi;:::,:,:,,,,,,,,,,,,,,,:::,::::::::::::::::;;;;;;;;;;
##++++++*******iiii****+#zznzzzzzzznzzzznnnnnnxMMWWWWWWWWWMxnz#++****+++#z+***+#zznn+*#MMMxxxz#*;::::,,:,,,,,,,,,,,,,,,,:,,::::::::::::::::::;;;;;;;;
##++++++*********iii**++zzzzzznzzzzznzznznnnnnxMWWWWWWWWWWMxnz#++++****###+*****+++++*+MWMxxxnzz+;:::,::::,,,,,,,,,,,,,::,,,,::::::::::::::::;;;;;;;;
##+++++***********i***++#zzzzzzzzzzzzznnnnnnnxMWWWWWWWWWWMMxnz###++**i+zz#+*i**iii*iii+MWMxMMxxxz*:::,,,::,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;;;;;;;
##+++++***********ii*+++#zzzzzzzzzzzznnnnnnnnxMMWWWWW@WWMMMxxnz##+**i*+zn#**i**iiiiiii#MWxzxMxxxx+;:,:,,,,,:,,,,,,,,,,,,,,,,,,,:::::::::::::::;;;;;;;
##+++++**********iii*+#++zzzzzzzzzzzzznnnnnnnxMMWWWWW@WMMMMxxnzz#+***+zzz#**i**iiiiiii#MMxMMMx#+x#::,,,,,:,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;;
##+++++**********iii*++##zznnzzzzznnzzznnnnnnxMWWWWWW@WMMMMxxnnz#+**+#nnnz*iii*+*iiiiinMMxxMxn+*x+:,,:,,:,,,,,,,,,,,,,,,,,,,,,,,:::,::::::::::::;;;;;
#++++++***********i***+#zzzzzzzzzznnnnnnnnnnnnxMWWWWW@@WMMMxxxnn#++++zxxMn#+++*++iiii*xMMMxxn#i+z;::,,,,:,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;;;;
#+++++******iiiiiiii***+zzzzzzzzzznnnnnnnnnnnnnxWWWW@@@@WWMxxxxnz#+++#nxMxnzzz++#*iii*MWxxxn#zz#;::,,,,:,:,,,,,,,,,,,,,,,,,,,,,,::,:::::::::::::;;;;;
++++++******iiiiiiiiii*+zzzzzzzzzznnnnnnnnnnnxxxMMW@@@@@@@Wxxxxnz##+##zzzzz+#+**#+*ii+MWWMxzi+i::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;
++++++*******iiiiiiiii*+zzzzzzzzznnnznznnnnnnxMWWWW@@@@@@@WMxxxn##z#zz#++++*+++*#+***zWMMnn+;;:::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;;
++++++*******iiiiiiiii*+#zzzzzzzznznznnnnnnnnxxMWWWWW@@@@@WMxxxn#+zzznzzz###+*++++***nMMxz*;:::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,::::::::::::;;;
++++++******iiiiiiiiii*+#zzzzzzzzzznnnnnnnnnnxxxWWWWWW@@@@@MMxxnz###znz+i**#n#++++**+#nMM#;:::::::,:,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::::;;;
++++*+******iiiiiiiiii**#zzzzzznznnnznnnnnnnnxxxMWWW@W@@@@@WMMxxz####z#+ii;i#x#++**+#xxxMz::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;;
++++********iiiiiiiiiii*+#zzzzzzzzzznnnnnnnnnnxxWWWWWW@@@@@WMMxxnz##+zz#+*ii#z#++*++nMMMx*::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;
++++********iiiiiiiiiiii+#zzzzzznzzznnnnnnnnnnnxMWWWWWW@@@@WMMxxnzz#+#zz#+**##++**++MWMM#;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;
++++********iiiiiiiiiii*+zzzznzzzzznnnnnnnnnnnxxxMWWWWWW@@@WMMMxxnz#++zzzz#+++**+++zMMnx*::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;
+++++*******iiiiiiiiiii*+#zzzzzzzzznnznnnnnnnnnxxMWWWWWW@@@WMMMMxxn#++#zzzz##+*+++#xMMnn;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;;
+++++******iiiiiiiiiiii*+##zzzzzzzzzznnnnnnnnnnMMMMMMWWW@@@MMMMMMMxn########+**++#xMMMn+:::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;
+++++******iiiiiiiiiiiii*+###zzzzzzzzznnnnnnnnxMxxxMMWWW@@@MMMMMMMMxnz##++++***##nMMMMz;:::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;
++++*******iiiiiiiiiiiiii*+++#zzzzzznnnnnnnnnnnxxMxxxMMM@@@MxxMMWWMMxnzz#+++++#znzMzxWz;::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::;:;;
++++*******iiiiiiiiiiiiiiii**+##zznnnnnnnnnnnnnnxxxxxxxxMWWMxxMMMMWWMMxnzz####z#nMn*xM+:::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;:;;
++++******iiiiiiiiiii;iiiiiii*+zznnnnnnnnnnnnnnnxxxxxxxxxMWMxxMMMMMWWWMMxnnnnz#+nMnzM#;:::::::::::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::;;;
+++*******iiiiiiiiiii;;;iiiii+#zznnnnnnnnnnnnnnnxxxxxxxxMWMMMxMMMMMMMMMMMMxnz#++xWMx#;:::::::::::,::,,,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,::::::::::;;;;
+++++******iiiiiiiiiiiiiiiiii+zzznnnnnnnnnnnnnnnnxxxxxxM@WMMMMMxxMMMMMMMxxz#++++xxz*;;:::::::::::,,,,,,,,,,,,,,,,,:;:,,,,,,,,,,,,,,,,,,:::::::::::;;;
++++*******iiiiiiiii;;;;iiii*+zzznnnnnnnnnnnnnnnxxxxxxMW@WMMMMMxxMxxMMxn##+++++#nx;;::::::::::::::,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,::::::::::::;
++++*******iiiiiiiiiii;;iiii*#zznnnnnnnnnnnnnnnnxxxxxMW@@WMMMMMMxxxxxn#++++**++#zMn;:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::
++++*******iiiiiiiiiiiiiiiii*#zzznnnnnnnnnnnnnnxxxxxMWWWW@MMMMMxxnnnnz+******+#+#MMni::::::::::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;::
++++******iiiiiiiiiiiii;iiii*#zzzznnnnnnnnnnnxxxxxxMWWWWWWWMMxxxnz#znn#+++**+#+##MMxx#i::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;
+++++******iiiiiiiiiiii;iiii*+#zzznnnnnnnnnnnxxxxMWWWWWWWWWMxxxxnzz#znn#++*+#####MWMMMxzi::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;;
++++*******iiiiiiiiiiiiiiii*+###zzznnnnnnnnnnxxMWWWWWWWWWWWMxxxnnnzzzzz#+++z#+++#MWMMMMxxz*;:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;
++++*******iiiiiiiiiiiiiii*+######znnnnnxnnxxMWWWWWWWWWWWWWMxxxnnnnzz#z###z#++++#xWMMMMMMMxn+;::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;
++++******iiiiiiiiiiiiiiii**+++++#zznnnnnxxMWWWWWWWWWWWWWWWMxxnnnnnzzzzzzzn+++++#nWMMMMMMMMMxx#i:::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;
+++********iiiiiiiiiiiiiiiii*++**+#znnnxxMWWWWWWWWWWWWWWWWWMxxnnnnnzzznxxMWx++++#nWMMMMMMMMMMMxxz*:::::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;
++++*******iiiiiiiiiiiiiiiiii*****#zznxMWWWWWWWWWWWWWWWWWWWMxnnnnnnnzzxxnMWWz+++#zWMMMMMMMMMMMMxxx#i:::,::,,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::::::
+++++******iiiiiiiiiiiiiiiiiii*ii*+zxMWWWWWWWWWWWWWWWWWWWWWWxnnnnnnnzxWMnMWWM+++#zWMMMMMMMMMMMMMMMxxn#i:::,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::;
++++*******iiiiiiiiiiiiiiiiiiiiii+zMWWWWWWWWWWWWWWWWWWWWWWWWWxnnnnnnnWWWMWWMWn++#zWMMMMMMMMMMMMMMMMxxxxnz;,,,:,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;
+++++******iiiiiiiiiiiiiiiiiii*#nMWWWWWWWWWWWWWWWWWWWWWWWWWWMxnnnnnnnWWxzxWWWM#++zMMMMMMMMMMMMMMMMMMMMxxMn:,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;
+++++********iiiiiiiiiiiiiii+nMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMxxnnnnnWWWx#nWMxWz++zWMMMMMMMMMMMMMMMMMMMMMMx*:,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::;;
++++********iiiiiiiiiiiiiiinMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWxnnnnnn@@@WMWWnzxM+#zWWMMMMMMMMMMMMMMMMMMMMMMz:,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::;;
+++++********iiiiiiiiiiiii+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMnnnnnnWW@WMWWnzzWz#zWWMMMMMMMMMMMMMMMMMMMMMMn::,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::;;
+++++********iiiiiiiiiiiiizWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMnnnzzxW@WWMMzzzxx#nWWMMMMMMMMMMMMMMMMMMMMMMxi::,:,,,,,,,,,,,,,,,,,,,::::::::::::::::;;
++++++*******iiiiiiiiiii*+xWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMnnnz#nWxWWzzzz#zxzxWMMMMMMMMMMMMMMMMMMMMMMMx#:::,,,:,,,,,,,,,,,,,,,::::::::::::::::;;;
++++++********i*iiiiii*+#zMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMnnz#xWxWWzznz##zzMWWMMMMMMMMMMMMMMMMMMMMMMxn:::,,,::,,,,,,,,,,,,,:::::::::::::::::;;;
+++++**********iiii**+#znnMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMxzz#MWWWWMMMz###zMWMMMMMMMMMMMMMMMMMMMMMMMxx;::::::,,,,,,,,,,,,:,,:::::::::::::::;;;;
++++++*************+#znnnxMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMzzzWWWWWWWMx###xMWWMMMMMMMMWMMMMMMMMMMMMMxx*:::::::,,,,,::,::::::::::::::::::::;;;;;
++++++**********+#znnnnxxxWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMn#zMxWWznWMMz##xMWWMMMMMMMMWMMMMMMMMMMMWMMx+::::::::::::::,::::,:::::::::::::::;;;;;
+++++++*****+++#znnnnxxxnxWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMzzxnWW#zWMWn#zMMWWMMMMMMMMMMMMMMMMMMMMWMMxz:::::::::::::,:::::::::::::::::::::;;;;;
++++++++*+++#znnxxxnxxxxxMW@WWWWWWWWWWWWWMxxWWWWWWWWWWWWWWWWWWWWMMnzWWWWMMWWWx#xMMWWMMMMMMMMMMMMMMMMMMMMWMMxn::::::::::::::::::::::::::::::::::;;;;;;
+++++++++##znxxxxxxxxxxxxWW@WWWWWWWWWWWMnz+*xWWWWWWWWWWWWWWWWWWWMMxzWWWWWWWWWMzMMWWWMMMMMWMWWMMMMMMMMMMMWMMxn:::::::::::::::::::::::::::::::::;;;;;;;
#+++++++#nxxxxxxxxxxxxxxM@@@WWWWWWWWWWMnnn#*xWWWWWWWWWWWWWWWWWWWWMMnWWWzMWMzWWzMMWWWMMMMMMMMWMMMMMMMMMMWWMMMx;:::::::::::::::::::::::::::::::;;;;;;;;
##++####nxxxxxxxxxxxxxxxW@WWWWWWWWWWMnz+#nzzMWWWWWWWWWWWWWWWWWWWMMMxW@W+xWM#WWnMMWWWWMMMMMMMWWMMMMMMMMMWWMMMx;:::::::::::::::::::::::::::::::;;;;;;;;
#######nxxxxxxxxxxxxxxxxW@@WWWWWWWMnzz#**nxMWWWWWWWWWWWWWWWWWWWWWMMMWWWxMWWMWWMMMWWWWMMMMMWMMMMMMMMMMMMWWMMMM*:::::::::::::::::::::::::::::::;;;;;;;;
######zxxxxxxxxxxxxxxxxM@@WWWWWWWMxzzn#*+xWWWWWWWWWWWWWWWWWWWWWWWMMMMWWWWWWWWWMMMWWWWWWMMMMWMMMMMMMMMMMWMMMMMz::::::::::::::::::::::::::::::;;;;;;;;;
######nxxxxxxxxxxxxxxxxM@@WWWWWWMxxnnnz##xWWWWWWWWWWWWWWWWWWWWWWWMMMMMnWWWzWWMMMMWWMMWWMMMMMMWMMMMMMMMMWWMMMMx;::::::::::::::::::::::::::::::;;;;;;;;
#####zxxMMxxxxxxxxxxxxxM@@WWWWWMxxxxxxn#+xWWWWWWWWWWWWWWWWWWWWWWWWMMMx+MWM*MWMMMMWWMMMMMMMWWWMWMMMMMMMMWMMMMMM*:::::::::::::::::::::::::::::;;;;;;;;i
#z###nMMMMMxxxxxxxxxxxxW@W@WWWWxxxxxnn#+*xWWWWWWWWWWWWWWWWWWWWWWWWMMMMxWWWnWWMMMMWWMMMMWMMMMWMWMWMMMMMxxMMMMMM#::::::::::::::::::::::::::::;;;;;;;;ii
zzz#zxMMMMMMMxxxxxxxxxxW@@@WWWWxxnnzzz#++nWWWWWWWWWWWMn#zMWWWWWWWWMMMMMWWWWWWMMMMWWWMMMWMMMMWMMMMMMMMn*i#MMMMMz::::::::::::::::::::::::::::;;;;;;;iii
zzzznxMMMMMMMxxxxxxxxMxW@@@WWWMn####+*#++#WWWWWWWWWWxz#+*zWWWWWWWMMMMMMWMnWWWMMMMWWWMMMWWMMMMMMMMMMMMn*ii#MMMxn:::::::::::::::::::::::::::;;;;;;;;iii
zzzznMMMMMMMMMMMxxxxxxMWW@@WMxnn#zz#+*****MWWWWWWWWnz##++#WWWMWWWWWMMMMMn+WWMMMMMWWMMMWWWMWMMMMMMMMMMx#***MMMMx;::::::::::::::::::::::::;;;;;;;;;;iii
zzzzxMMMMMMMMMMMMMxxMxMW@@@Mxxxnzzzz+*i***xWWWWWWMnzz####nWWMnxxxxxMxxxxMxWWMMMMWWMMMMMMMWWMMMMMMMMMMMxz#+MMxxx;:::::::::::::::::::::::::;;;;;;;;;iii
zzznMMMMMMMMMMMMMMMMMMMW@@@Mxxxxxnnz+*****zWWWWWWnzzz###nMWM#.,,:;nMz##znWWxxxnxMMMMMMMMMMMMMMMMMMMxMMMMn#Mxz+z;::::::::::::::::::::::::;;;;;;;;;iiii
zzzxMMMMMMMMMMMMMMMMMMM@@@@MMMMxn##******++MWWWMnzzzzzznMWWMi.....nMi...nMx:;i+n+#zzznzxxxnMxxxMMMxxxMMMMxxxz**i::::::::::::::::::::::;;;;;;;;;;;iiii
zznxMMMMMMMMMMMMMMMMMMM@@@@WMMMn#*i***+++**#MMMnzz#nnnxMWWWM:.....zM;...nMx...in.....:x;;izn##zzxxnnxnxMMMMMn++#::::::::::::::::::::::;;;;;;;;;;iiiii
nznxMMMMMMMMMMMMMMMMMMW@@@@@MMx#+*ii**+++***#nnzzzzzxxMWWWWx,.....zM:...xMn...iz.....,n...#z,,:zn+i;i+nMMMMMxzzn::::::::::::::::::::::;;;;;;;;;;;iiii
nznMMWMMMMMMMMMMMMMMMM@@@@@@Wxxz#++**+++++****+zzznxMWWWWWMz......#x,..,xMz...*#.....,n...*z...ni.....:xMMMMMxn#;:::::::::::::::::::;;;;;;;;;;iiiiiii
nnxMWMWMMMMMMMMMMMMMMW@@@@@WMxnzz#+***++++++**++znxWWWWWWWM+..,,..#x,..:xM#...++...+nzz...:#..,n.......*WMMMMxn+i;:::::::::::::::::::;;;;;;;;;;iiiiii
nnxMWWWWMMMMMMMMMMMMMW@@@@@Wxxzzz#+**++++++++*+#nxMWWWWWWWM;..;,..+n...;xM+...z*...zxM#....*..:z...+:..;MWWMMMx#*;:::::::::::::::::;:;;;;;;;;;iiiiiii
nnxWWWWWMMMMMMMMMMMMM@@@@@WWMMxnnz#*+++++**++++#nMWWWWWWWWM,..*,..+n...ixMi...ni...i*n+....;..;#...#;..iMMMMMMMn+i:::::::::::::::::;;;;;;;;;;iiiiiiii
nxMWWWWWWMMMMMMMMMMMW@@@@@WWMMMxn+**+++++***++#zxWWWWWWWWMn...#:..+z...*Mx;...n;.....z*....,..iz...,#zzzMMMMMMMxnn;;:::::::::::::::;;;;;;;;iiiiiiiii*
nxMWWWWWWWMMMMMMMMMMW@@@@@@WWMMz+**++++**++*++#nMWWWWWWWWM#...,...*#...+Mx:..,x:.....ni.......*x:....#xMMMMMMMMnzM+;:::;::;;:;:::,,:::;;;;;;iiiiiiii*
xMWWWWWWWWWMMMMMMMMM@@@@@@@@WMn#+*+++++++++++#zMWWWWWWWWWWi.......i+...#xM:..,x,..,#+x;.......+xn,....#MxMxxxMMz*nx;:;;;;;;;;;;i*,:*;:;;;;iiiiiiiii**
xWWWWWWWWWWWWMMMMMMW@@@@@@@@WMxz++++++++++++#zxWWWWWWWWWWM:..,:...i*...#nx,..:x,..:MMx:..:....#zzn;...,xMxxxMMMx#zM+;;;;;;;;;;;*i::+;;;;;;iiiiiiiii**
MWWWWWWWWWWWWWMMMMMW@@@@@@@@@Mxz+++++++####znMWWWWWWWWWWWx,..:x,..;i...,,z...;x...;nnx,..*....z;,:*;...zxMMMMMMMnxWn;;;;;;;;;:;i*ii+:;;;;;iiiiiiii***
WWWWWWWWWWWWWWMMWMWW@@@@@@@@WMxz##+++++#zznxMWW@@WWWWWWWWn,,,iM,..;;.....#...in....,:n,..#....n:..;#...zMMMMMMMMMMWx;;;;;;;;;::i;,;*::;;;;iiiiiiii***
WWWWWWWWWWWWWWWWWWWW@@@@@@@@WMxnz#++++##nxWWM@W@@WWWWWWWWWMMxxWz#+#+;::,,z...*z......z...n,...x:..i+...zMMMMxxMMMMMx;;;;;;;;;i:;:,:i,*;iii;iiii*i****
WWWWWWWWWWWWWWWWWWW@@@@@@@@@WMMnz######nM@WxW@@@@@WWWWWWWWWWWWWWWWWWMMMMxMzz#zxi;:,,,z..,x;..,xi...,..,nMMxxxxMWMMMMi;;;;;;;;;;i;,;i:#+++**iiii******
@@@WWWWWWWWWWWWWWWW@@@@@@@@@@WMxnzz###zW@WxW@@@@@@@@WWWW@@@WWWWWWWWWWWWWWMMMMMWWWMMxxMz#+Mz;:;Mx:.....iMMxnnxnnnnxxn#****iii;:;;;;iii**+#+*iii*******
@@@@WWWWWWWWWWWWWW@@@@@@@@@@@WWMxnzz#zx@MxM@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWMMMMW@WWWWWWWWWWWWWMMWWx+;;;+MMMMMWWMMMMMMMxii**+++i+**+;*ii;iiiiiii*******+
@@@@@@WWWWWWWWWWWW@@@@@@@@@@@WWMMxnzzxWMxM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWMMMW@WWWWWWW@@@@@@@@@@WWWWWWWWMnW@WMMMWWMMWi;;;;;;;;ii+;*++##**;i*i******++
@@@@@WWWWWWWWWWWWW@@@@@@@@@@@@WWMxxxMWMxM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWMMW@@WWWWWWWW@@@@@@@@@@WW@@@@WxxW@@MMWWWWWW+;;;;;;;;;;i;;;ii*;ii*********++
@@@@@@WWWWWWWWWWW@@@@@@@@@@@@@@WWMMMMxxxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@WWWWWWWW@@@@@@@@@@WWWWWMMxW@@WMMWWWWWW#;;;;;;;iiiiiiiiiiiii*********++
@@@@@@@WWWWWWWWWW@@@@@@@@@@@@@@WWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@WWWWWWWW@@@@@@@@@@@@@@WWMM@@@WMWWWWWWW+i;;i;;iiiiiiiiiiii********+++++
@@@@@@@@WWWWWWWW@@@@@@@@@@@@@@@@WWWW@WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWW@@WWWWWWWW@@@@@@@@@@@@@@@WWW@@@WMWWWWWWxiiiiiiiiiiiiiiiiii********++++++
@@@@@@@@@WWWWWWW@@@@@@@@@@@@@@@@WWMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWW@@WWWWWWWWWW@@@@@@@@@@@@@@@@@@@WMWWWWWW+iiiiiiiiiiiiiii*********++++++++
@@@@@@@@@@WWWWW@@@@@@@@@@@@@@@@@WWMMMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWW@@@WWWWWWWWWW@@@@@@@@@@@@@@@@@@@WMWWWWWMiiiiiiiiiiiiiiii********+*+++++++
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xW@@WWWWWWWWWW@@@@@@@@@@@@@@@@@@@WWWW@WWziiiiiiiiiiiiiii*********+++++++++
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WzM@@WWWWWWWWWW@@@@@@@@@@@@@@@WW@@WWWW@WW*iiiiiiiiiiiiiii********++++++++++
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WM@@@WWWWWWWWWWW@@@@@@@@@@@@@WWWWWWWWWWWziiiiiiiiiii*ii********++++++++++##
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@WWWWWWWWW@@@@@@@@@W@@@@@WWWWWWW@WM*iiiiiiiiiii**********+++++++++####
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWW@@@@@@@@@WW@@@@WWWWWWWWM+iiiiiiiiii***********+++++++++#####
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWW@@WWWWWWWW@@@@@@@@@@@WMMW@@@WWWWWWWM+iiiii**ii************+++++++++######
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@WWW@@WWWWWWWWWW@@@@@@@@@WMnznMWWWWMxn#*i*******************+++++++++########
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@WWWWW@@@WWW@@@WWWWWWWWWWWW@@@@@@WWxz***+###+**ii*******************+++++++++#########
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWW@@WWW@@@WWWWWWWWWWWW@@@@@@@Wn+******************************++++++++###########
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@WWWWWWWWWWWWWWW@@@WWz****************************+++++++++#############
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@@@@@@@@@WWWWWWWWWWWWWWWWWWWn**************************++++++++++##############
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWW@WWWWWWWWWW@@Wn*********************++++++++++++++##############z
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWW@WWWW@@WWx*********************++++++++++++##########zzz#zzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W@WWWWW@WWWWW@@@WWM*****************+++++++++++++++###########zzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@WW@@@@WWWWW@@@WWW+**********+***++++++++++++++##########z#zzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWW@@@WWW@@@@@@@WW#*********+*++++++++++++++++############zzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wz+*+++++++++++++++++++++++#############zzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wx++++++++++++++++++++++++##########z#zzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M+++++++++++++++++++#+#############zzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W#+++++++++++++#++##############zzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@n+++++++++++#+################zzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M#++##++####################zzzzzzzzzzzzzzzzzzzzz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W#########################zzzzzzzzzzzzzzzzzzzzzzz