zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz##zzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzz##zzz
zzzzzzzzzzzz###zzzzzzzzzzzzzz##zzzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzz###zzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzz####zzzzzzzzzzzzzzz#zzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz##zzzzzzzzzz
zzzzz###zzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzz###zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz###zzzzzzzzz
zzzzz###zzzzzzzzzzzzzzz###zzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzz###zzzzzzzzzzzzzzz####zzzzzzzzzzzzz####zzzzzzzz
zzzzz####zzzzzzzzzzzzzz####zzzzzzzzzzzzzz###zzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzzz###zzzzzzzzzzzzzz####zzzzzzzzzzzzzz###zzzzzzzz
zzzzzz##zzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzz###zzzzzzzzzzzzzzz###zzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzz##zzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzzzzzzznnnnnxxxnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxMWWWWWW@W@@@@@@WWWMxxnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzxWWW@@@@@@@@@@@@@@@@@@@@@WMxnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mxnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WMnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzznM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WMnzz##zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz###zzzz#zzzzzzzzzzzznW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wnzz##zzzzzzzzzzzzzz###zzzzzzzzzzzzzzz###z
zzzzzzzzzzzz####zzzzzzzzzzzzz##xW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wnzz#zzzzzzzzzzzzzz##zzzzzzzzzzzzzzz###zz
zzzzzzzzzzzz####zzzzzzzzzzzzzznW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mn#zzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzz##zz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzx@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mzzzzzzzz##zzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzz#zzzzzzzzzzzzzzzzz###znW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Mzzzzzzz##zzzzzzzzzzzzzzzz###zzzzzzzz
zzzzzz##zzzzzzzzzzzzzzzz###zM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xzzzzzz###zzzzzzzzzzzzzzz###zzzzzzzz
zzzzzz###zzzzzzzzzzzzzz##zznW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xzzzzz###zzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzz##zzzzzzzzzzzzzzz###zx@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wnzzzzzz#zzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzxWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@n#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzznW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWW@@@@@@@@@@@@@@@@@@@@@@@Mzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@@@@@@@@@@@@@@@@@@@@@@Wxzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzn@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWMMMWWWWWW@@@@@@@@@@@@@@@@@@@Wnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzx@@@@@@@@@@@@@@W@WW@@W@@@@@@@@@@@@WWMMMxxMMMMMWWW@@@@@@@@@@@@@@@@@@@xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzM@@@@@@@@@@@@@@WWWWWWWWWWW@@@@WWWWWWMxnxnnnnnxMWWWWW@@@@@@@@@@@@@@@@Wzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzznW@@@@@@@@@@@@@@WMMWWWMMxMW@@@WWWWWWMxnnnz+*+#xMMMWWWWWWW@W@@W@@@@@@@Wnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzx@@@@@@WWWWWWWWWMxxxMMxnnxWWWWWWWWWxnzzz#*;:i+zxxxMMMWWWWWMMMMWWW@@W@@Mzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzz#####zzzzzzzM@@WW@WWWWMxMWWMnzzzznz+#xWWWWWWWWMnzzz#*;;;;*#nxMMMWWWMxzzz#zxWW@WW@@Wnzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz###zzzzzzznW@@@WWWWWMxxxMMx#++++++*#xMMMMWWMMxz##+*;;::;i+nxMWMMMxz*i**++nMW@WW@@@Mzzzzzzz###zzzzzzzzzzzzzzzz#zz
zzzzzzzzzzzz###zzzzzzzx@@@@WWWWWMxxxMMz+*++****#nnnnxMMMxnz#+*;::,,:;*znxnnz#*i;;ii*+zMWWWW@W@Wzzzzzz####zzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz####zzzzzzW@@@@WWWWMxnznnz#+****i****+*#nxxxnz+*i;::,,,::i++*iii;;;;;;;i*zxxxnM@@WWnzzzzzz##zzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzx@@@@WWWMxnnzzzz#++***iiiiii;i+nxxz#+*i;:::,,,,:;;:::::::::::;;i+##++nW@WWxzzzzzz#zzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzM@@@@WWMxzzz####+++***ii;;;;;;+nnz+ii;;::,,,,,,,:::,,,,,,,,:::;;i**i*zWWW@Wzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzn@@@@WWMnzz######+++***ii;;:::;i*+*i;;::::,,,,,,,,,,,.,,,,,,::::;;iiii#MWW@@nzzzzzzzzzzzzzzzz#z#zzzzzzzz
zzzzz###zzzzzzzzzzzzM@@@WWMxnz#####++++++*ii;;;;::::;;;;;::::,,,,,,,,,.,...,,,,,::::::;;;;+nMW@@xzzzzzzzzzzzzzzzz###zzzzzzzz
zzzzz###zzzzzzzzzzznW@@@WWMxzz#####+++++**ii;;;;:::::;::::::,,,,,,,,,,.....,,,,,:::::::;;i*#xW@@Mzzzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzz##zzzzzzzzzzzM@@@WWWMxz########+++**iii;;;:::::::::,,,,,,,,,,,,,,,,.,,,,,:::::::::;;i+nMW@Wnzzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzzzzzzzzzzzzzznW@WWWWMMxzz####+++++***ii;;;;;::::::::,,:::,,,,,,,,,,,,,,,,,:::::::::;;i*zxW@Wxzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzM@@WWWWMMxnz#######++**iii;;;;::::,,,,,,,:,,,,,,,,,,,,,,,,,,,::::::::::;i*#nW@@Mzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzznW@WWWWWMMxnz#######++**iii;;;;:::,,,,,,:::,,,,,,,,,,,,,,,,,,:::::::::::;i+znMW@Mzzzzzzzzzzzzzzzzzzzzzzzzzz
zz#zzzzzzzzzzzz#zxW@WWWWWMMnnz#######++**ii;;;::::,,,,,,,::,,,,,,,,,,,,,,,,,::::::::::::;;i+znxM@Wnzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzxWWWWWWWWMnnz#######++**i;;;::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::;;i*#nMMW@Mzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzM@W@@WWWWMnzz######+++*ii;;::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::;::;ii+nxxM@Wzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzM@@@WWWWMxnz#######+++**i;;::::,,,,,,,,,,,,,,,,,,,,,,..,,,,,::::::::;;::;;i+nxMMWMzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzM@@@WWWWWxnz#######+++**ii;;::::,,,,,,,,,,,,,..........,,.,,,:::::::;::::;i+nxMWWMnzzzzzz#zzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzxW@@@W@WMnz#####zzz####+**i;;:::,,,,,,,,,,,,,.............,,,::::::;;;;::;*#xMMMWWnzzzzzzzzzzzzzzzzzzzz#zzz
zzzzzzzzzzzzz#z#zxW@@@@@Wxz#####nxMMMMxxn#+iii;;::,,,,,,,,,,,,..........,,,,:::;;;;;;:;;;;;i+xMMWWWnzzz###zzzzzzzzzzzzz####z
zzzzzzzzzzzz####znW@@@@@Mz#+##zxWWWW@@WWWMx#+**i;;:,,,,,,,,,,.......,,,,,::;;;;iiiii;:::;:;i+xMMWWWn#z###zzzzzzzzzzzzzzz####
zzzzzzzzzz#zzzzzznW@@@@Wx#++#nxW@WW@@@@@@@WWMn#+i;;::,,,,,,,,,....,,::;;;;;ii*+######*i;;;;i+xWWWWWnzz##zzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzM@@@@Wn+*+nMWWWMMMxxxMWW@@@@Wx#*;;;:,,,,,,,,..,,::;;ii*+#znxMMMMMMMxz*;;;i+nWWWWWnzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzxW@@@M#**+nMWMxnnz##zznxMW@@WWMn+i;;::,,,,,,,,::;i*+#zxMMWWWWWWWWWWWMz*::;izWWWWMzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzznW@@@M#i*+xWMxz+##zzzznxxMMMWW@Wx+ii;::,,,,,,:;;*#nMWWWWWWWWWMxxnnxMMMz;,,;#WWWWMzzzzzzzzzzzzzz##zzzzzzzzz
zzzzz###zzzzzzzzzznW@@Wx+i*#xMxn#++##+*+nnnxMMMMWWMn#*;::,,,,,:;i*zMWWWWWWWMMxxn#+*+#znnn+:,:+MWWWxzzzzzzzz#zzzz#####zzzzzzz
zzzzzz###zzzzzzzzzzM@@Wn++zxxnz###++:.`.;*+#zxMMMMMMx#i::,,,,,:i+znMMMMMMMMxzzzz#++#zz##nzi,,*xWWMnzzzzzzzzzzzzzz####zzzzzzz
zzzzzz##zzzzzzzzzzzx@@Wn++#xx#++zz#*.``,i****+zxMMMMxz*;::,,.,,;+#zznnnnMMn#+****++znzzzz#*,,in@@xzzzzzzzzzzzzzzzz###zzzzzzz
zzzzzzzzzzzzzzzzzzznW@Wx+::+x#*##+#+ii+nMMxzzz##xMMxn#*;:,.....:+###znnnn#+*i;,..,,:;i*+##+;,ixWWxzzzzzzzzzzzzzzzz#zzzzzzzzz
zzzzzzzzzzzzzzzzzzzxW@@xi``in#+#+#nxxMWW@@WWWWn++xxxn#+i;;:,...:*#zznnnzz####+;.``````,;*++*:inWMnzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#zxW@WW#,``:+#++#nMWW@@WWWWWWWWz*+nMxxxxxnnz+***+znnnnnxMMWWWWx*:.   ``,;;:;i+x@Mzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzxW@@xi,..,i+++zWWMMWWWWWMMMMMMz*+xWWMMxxxxnnxxMMnznxxMMMWWWWWx+:.    ,;,``,+MWxzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzznW#x*;*i;i*+#nWMxnxW@@@WWMnnMM##nWWn+****i*zM@Mz+nxxzzxWWWMMMzi:`   .;.  `ix@nzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzz###x@Mi:i*+++##nxxz#zMW@@@WxznWMz#xWMz*i::,.,*xWMz+zMx++nW@WWMMzi;.`  .:`  `:nWnznzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzz##xM*.`,;*+##zz#++zxMMMMxzzxWx#nMWMn+i;::,,inWWx#+nx#+zMW@@@M#i;;,` .,..``:zMMxxzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#zzz#zx+,``.*#zzz##++znnnzznznMMxnMWWxz*i;;:::*nWWM#*#zz++#nWWMn+;::,. .,:;;,;zMxzzzzzzzzz#zzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzz##xz*, `*nz#z####zzzzz#nxxxxxxMWMn#*i;:::;inWWx#++####+#nnnz+i:,,.`.:,,:.;znzzzzzzzzzz#zzzzzzzzzzzzzzzzz
zzzzzzzzzzzz###zzzz##znzz*,.;+#zz###zzzznzznnxxxxnxMxn#*i;::;;izxxn#++#######++++i,,,.`.:````izzzzzzz#####zzzzzzzzzzzzzz###z
zzzzzzzzzzzz####zz#+zxn##n#i;*+###+#zzzzznnnznnxxxxxnz+*i;::;;i#znnz+++#zzz##+***;,..`.,:` `:+#zzzzzz#####zzzzzzzzzzzzzz###z
zzzzzzzzzzzzzz#zz##nxWM#*#nn#+###++++++####zznnxxxxnnz+*;:::;;i+#znxz#*+++##+**ii:,,,.,:,  `;#zzzzzzz##zzzzzzzzzzzzzzzzz##zz
zzzzzzzzzzzzzzzzz#nxMMM#ii#znnnnz###+++++##znxxxxnnnzz#*i;;;;;;*+#znnz#*ii*****i;,,:::,.``.;*+++zzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzz#z#nxxMxz***+#znnnnnnxnnznnznxxxnnnnzz##+i;;;:;;i*+###nxz+*i;;;;:,,,,,,,,,:ii:i+++#zzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzz#zzzzzzzzzz#xxxxxz++++++##zzznxxnnnnnnnnzznnzzz##+*ii;;;;i**+++#znz#+*iii;:,,,;i**++*,.izn###zzzzzzzzzzzzzzz##zzzzzzzz
zzzzzz##zzzzzzzzz#xxzzxz++**+++++###zzz##zzzzzzzzzzz###+**i;;;;;ii******+zz#+++++ii*+##**i:..*nx##zzzzzzzzzzzzzzz###zzzzzzzz
zzzzzz###zzzzzzzz#nx#+nz++***+*++++#######zzzzzzzz###zz++*i;;;;;;;iiiiiiii*i;i****;;;;;::,,,:*zx###zzzzzzzzzzzzzz###zzzzzzzz
zzzzzz##zzzzzzzzz#zn##nz++**+****+++++#####zzzzzz######+*ii;;;;;;;;i;;;;;;;::::,,,,,,,,::,,,:*#n##zzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzzzzzzzzzzzzz####zxn++*********+++++###############+ii;;;;::;;;;;;;;;:::,,,,,,,,,,,,,,,,:i+n##zzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#z###nxn#+**+********+++++############+*;;::;:::::;;;::::::,,,,,,,,,,,,,,,,,::*n##zzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzz###znxz++***********++++++##########+*i;::::::;::;;;:::::,,,,,,,,,,,,,,,,,,,,*n##zzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzz#+znnz++***********+++++#####zz###++*;;:::::;;;;;;;::::,,,,,.,,,,,,,,,,,,,,,*z+##zzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzz#znxn+************+++++####z####++*i;::::::;;;:;;;;::,,,,,,,,,,,,,,,,,,,::,;++##zzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzz#z#znxn+************+++++###zz###+++*i:,,,,,,::::::;:::,,,,,,,,,,,,,,,,,,,;i::;*zzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzz#+zzz++**********++++++########+++*i:,,,...,::,::;:::,,,,,,,,,,,,,,,,,,:i*:::+zzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#zzz#+#++*********++++++++##zzz###+++*i:,,,...,:::::::::,,,,,,,,,,,,,,,,,,:i*:,,zzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz###zzzzz++++*+**++++++++++++++##zzz##zzz+*i;:,,,,,:;;::;:::::,,,,,,,,,,,,,,,,,:*+;,,#zzzzzz###zzzzzzzzzzzzzz##zz
zzzzzzzzzzzz###zzzzz+**+*+**+++++++++++++++###zzzxMMn+i;:;;:::i*i;::::::::,,,,,,,,,,,,,,,,:+#i::#zzzzz####zzzzzzzzzzzzz####z
zzzzzzzzzzz####zzzzz#**+++++++++++++++++*++###zznxMMxn#*iii;;*#nz*;:;:::::,,,,,,,,,,,,,,,,:**;:izzzzzz####zzzzzzzzzzzzz####z
zzzzzzzzzzz####zzzzz#**++**++++++++++++****++#zznxMMxnz#++*ii+nxxzi:;:::::,,,,,,,,,,,,,,,,:;:::*zzzzzz###zzzzzzzzzzzzzz###zz
zzzzzzzzzzzzzzzzzzzzz+++***+++++++++++******++#zzxMxzzzz##*ii+zxxzi:::::::,,,,,,,,,,,,,,,,,,:::+zzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzz+*++**+++++++*******ii**+##znnnzzzz##*ii*+zz+;:;:::::,,,,,,,,,,,,,,,,,,,:i##zzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzz##zzzzzzzzzzzzz###+**++++++******iiiii**+##zzzz####+*i*++#+i;:;:::::,,,,,,,,,,,,,,,,,,.:#zzzzzzzzzzzzzzzzzz###zzzzzzzz
zzzzz###zzzzzzzzzzzzzzz#+**++++++*****iii;ii**+######+*++*i;i***i;;:::::::,,,,,,,,,,,,,,,,,,,*####zzzzzzzzzzzzzzz####zzzzzzz
zzzz####zzzzzzzzzzzzz#zz+*****+++*****iii;;ii*+++#+++*iiii;;;;ii;;;::::::,,,,,,,,,,,,,,,,,,:i#zz##zzzzzzzzzz#zzzz###zzzzzzzz
zzzzzz##zzzzzzzzzzzzz#zz#****++++****iii;;;i***++++**i;;;::::::;;;;;:::,,,,,,,,,,,,,,,,,,;**#zzz##zzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzzzzzzzzzzzzzzzz#zzz#***++++++***ii;;;;i********i;:::::,:::::;;;:::,,,,,,,,,,,,,,,,,;#zz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzz#zzz#+*++++++++**iii;;;i******ii;:::::,,,,:::;;::::,,,,,,,,,,,,,,,::+zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzz+*+++++++++**ii;;ii*****ii;::::::,,,,::::::::,,,,,,,,,,,,,,,,,i#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzz#++++++++++**iiiiii***iiii;::::::,,,,,:::::::,,,,,,,,,,,,,,,,:+zzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzz#++++++++++***iiiiii***ii;:,,,,::,,,,,:::::::,,,,,,,,,,,,,,,,*zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzz++++++##++***iiiii*****ii:,,,,::,,,,,:::::::,,,,,,,,,,,,,,,:#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzz++++++++++**iiii*****+++*i;:,,,,,,,,,::,:::,,,,,,,,,,,,,,,.;#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzz#+++++#+++***iii*++++#####+*i;;;:::,,::,:::,,,,,,,,,,,,,,,,*z#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz###zzzzzzzzzzzz+##+###++***i*+#zzzznnnnnnnz+++*iii;:,,,,:,,,,,,,,,,,,,,,:#zzzzzzzzzzzzzzzzz###zzzzzzzzzzzzzzz###
zzzzzzzzzzzz##zzzzzzzzzzzzz#+++###++**ii+#nxxxxxxxxnnnnzzz##+#+*i;;::,,,,,,,,,,,,,:,i##zzzzzzzzzzzzzzz####zzzzzzzzzzzzz#####
zzzzzzzzzzzz###zzzzzzzzzzzz##+++##++**ii*+zxxxxxxxxxnnnnnnnzznnnzz#*;:,,,,,,,,,,,:,:+z#zzzzzzzzzzzzzzz####zzzzzzzzzzzzzz###z
zzzzzzzzzzzzzzz#zzzzzzzzzzzz#++###++**iii*+zxxnnnnnnnnnnnnnnnnnnxnnnz+i::::::::::::i#z#zzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzz#+####++**iii*+#znnzzzzzznnnnzzzzzznnnnnnz+i;:::::::::;+z#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzz######++**ii*+##zz####++######++++##z#*ii*i;:::::::::;+zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzz###zzzzzzzzzzzzzzz#zzz#z######+++****+#####++++******ii****iii:,:;;:;::::::::i#zzzzzzzzzzz#zzzzzzzzzzzzzzzzz##zzzzzzzzz
zzzzz###zzzzzzzzzzzzzzz##z##zz#######++++++####+++******iiiiiiiii;::,,:::::::::::;*zzzzzzzzzzz####zzzzzzzzzzzzzz####zzzzzzzz
zzzzz####zzzzzzzzzzzzzz##zzzzz##zz#####+++#####+++++***iiiiiii;;;::::::::::::::::i#zzzzzzzzzzz####zzzzzzzzzzzzzzzz###zzzzzzz
zzzzzz###zzzzzzzzzzzzzz##zzzzz##zz###############+++++***iii;;;;:::;;:::;;;;;::;:*zzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzzz#zzzzzzzzzzzzzzzzzzzzzzz#zzzzz##################+*iii;;;;;::;;:;;;;;;;;;::+zzzzzzzzzzzzzzz#zzzzzzzzzzzzzzzzz#zzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#zzzzz##################+**ii;;;;;;;;;;;;ii;;;;:izzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz+zzzzz##########+++++#+++**ii;;;;;;;;;;iiii;;;;:izzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#+zzz##########++++**++++**ii;;;;;;;;;;iiiii;;;:,izzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#+#zz########++++**iiiiiiiii;;;;;;;;;;;;ii;;;;:,,izzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz#+###zzz######+++*ii;;;;;;;;;;;;:;;:::;;;;;;;;:::,:##zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzzzzzzzzzzzzzzz#++####zz###z##++**ii;;;:::::::::::::::;;;;;;;;::::,+zzzzzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz#zz##zzzzzz#+**+####zz##zzz#++**ii;;::::::::::::::::;::;;;;:::::,:+zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz##zzzzzzzzzzzz#+**+#####zzz#####++**ii;;:::::::::::::::::;;;;::::,::,,:*#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzz####zzzzz##nxn*i+++######zz######++*ii;;:::::::,:::::;:;:;;;;::::,::::,:i+zzzzzzzzzzzzzzzzz##zzzzzzzzzzzzzzz##zz
zzzzzzzzzzzz###z#zzzzznxxz+++++######zzzz#####+**i;;;;::::::::::;;;;::;::::,,,,,,::,,:+#zzzzzzzzzzzzzz###zzzzzzzzzzzzzzz##zz
zzzzzzzzzzzzzzzzzz#zxnnxn############zzzzz####++**ii;;;::::::::;;;;;;;::::,,,::::::::::*#zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
zzzzzzzzzzzzzzzz##znxnnnn#############zzzzzz###++**ii;;;;;::::;;;;i*i:::::::::::::,::::;+zzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzzzzz
zzzzzz#zzzzzzzzz+znnnnnnxn############z#zzzzz###++**ii;;;;;;;;;;;iii;:::::::::::::::::::;zn##zzzzzzzzzzzzzzzzzzzz#zzzzzzzzzz
zzzzzzz#z#zzzz#++nnnnnnnxnz##############zzzzz###+++**iiiiiiiiiiiii;::::::::::::::::::::,*nz#+#zz#zzzzzzzzzzzzzzz##zzzzzzzzz
zzzzz#z#zzzz#+***#nnnnnnnnz###############z#zzzzz###++*****i****ii;;:::::::::::::::::::,,iznnz++z#zzzzzzzzzzzzzzz###zzzzzzzz
zzzzzz##zz#+*+++++znnnnnnnnz#################zzzzzz#####+++***ii;;;;:::::::::::::::::,,,,*zzzznz+#zzzzzzzzzzzzzzzz##zzzzzzzz
zzzzzz#z#+**++++++znnnnnnnnn################zzzzzz#####+++*iiii;;;::::::::::::::::::,,,,:+nzzzzn+i*#zzzzzzzzzzzzzz##zzzzzzzz
zzzzzzz+**+**++*++#nnnnnnnnnz###############zz#######+++**ii;;;;;;:::::::::::::::::::::,;znznzznz*;i+#zzzzzzzzzzzzzzzzzzzzzz
zzzzz#+*++****++*++znnnnnnnnnz######################++***ii;;;;;;;::::::::::::::::::::::*nnnzzznz*i;;i#zz#zzzzzzzzzzzzzzzzzz
zzz#+****++***++*++#nnnnnnnnnz#+####################+**iii;;;;:;;::::::::::::::::::::::iznzzzznn#*iii;;*#zzzzzzzzzzzzzzzzzzz
zz+*******+***++*+++znnnnnnnnn#++#+++###############+**ii;;;;;::::::::::::::::::::,,::;#nnzznzznz*iiiii:;+#zzzzzzzzzzzzzzzzz
+************+++++++#nnnnnnnnnz+*++++++#############++*iii;;;::::::::::::::::::::,,,::*nxnznnzzz#*i;iiii::i+zzzzzzzzzzzzzzzz
****++******++++++++#znnnnnnnnn#*i**++++++##########++*iii;;;::::::::::::::::::::,,:;i#nnnzznzzz+iiiiiii;;::*+#zzzzzzzzzzzzz
***+++***+++++*++++++#znnnnnnnnn#*****+++++########++**iii;;::::::::::::::::::,,,,,:;+nnnnnzzzzz+i;iiiiiii;:;;i*#zzz#zzzzzzz
***+++****++++*+++++++#nnnnnnnnnn#******+++++#####+++**ii;;;::::::::::::::::::,,,,:;izxnnnnnzzzz*iiiii*iii;;;;::*+#zzzzzzzzz
****+*****++++*+++**+*+znnnnnnnnnnz+******++++###+++**iii;;:::::::::::::::::::,,,::i#xnnnnnzzzz#*iiiiii*iii;;;;;;:;i#zzzzzzz
***********+++******+**#nnnnnnzznnnz*******++++++++**ii;;;;:::::,:::::::::::::::::;+xxnnnnnnnnz#iiiiiiiiiiii;;;;;;;;i+#zz#zz
***********++**********+znzzzzzzznnn#++*****+++++++**ii;;;;:::::,,,,::::::::::::::*nxnnnnnznnnz**iiiiiiiiiiiii;;;;i;;;;i+z#z
************+***********+znzzzzzzzznnnz+*******+++**ii;;;;::::,,,,,,,,,,,,,,::::;*nxnnnnzzzznn#*iiiiiiiiii**iiii;iiiiii;i+#z
*************************#nnzzzznzzznnnz+***iii***iii;;;::::::,,,,,,,,,,,,,,,:;;+nxnnnnzznzznn+iiiiiiiiiii**iiiiiiiiiiiii;;+
**************++**+++*****#znzznnzzznnnxz#+i;:;iiiii;;;;::,,,,,,,,,,,,,,,,,,::i+nxnnnnnzzzznz#*iiiiiiiiiii**iiiiii;iiiiiiiii