#########+++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiii*****+++++++++++++++++++++++++++++++++#+###########zzzzzzzzzzzzzzzzzznnzzzzzznnz
##########++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiii****++++*++++++++++++++++++++++++#++++############zzzzzzzzzzzznnnnzzzzzzzzzznnz
#########+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiii****++++*+#++++++++++++++++++++++#++#++###########zzzzzzzzzzzzzzzzzzzzzzzzzznzz
#########++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiii***+++++++++++++++++++++++++++++#++#############zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
#########+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiii**+++#zznnnnnz######zzzzz###++######+###########zzzzzz##zzzzzzzzzzzzzzzzzzzzzz
#########+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiii**+znnnnnnnnnnz#zzznnnnnnnnnnnnnnnnz############zzzzzzzzz#zzzzzzzzzzzzzzzzzzn
#########++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii**#zznnnnnnnnnnnnnzzzzzzzzznnnnnnnzx###########zzzzzzzzzzzzzzznzzzzzzzzzzznzz
#########++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiii*+#zzzzzzzzznnnnnnzzzz############zWz#########zzzzzzzzzzzzzzzznzzzzznnzzzzzzz
#########++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*##z###zzzzzzzzzznnzz#zz##++++++++#Wz+#########zzzzz#zz#zzzzzzzzzzzzzzzzzzzzz
#########+++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii+++#++++z##z#####zzzzz####++++++++nWz#########zzzzzzzzzzzzzzzzzzzzzzzzzzzzznz
#########+++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiii*##+#+++++z###+#######z#######++++#xMxnz#######zzzzzzzzzzzzzzzzzzzzzzzzzzzzznn
#########+++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiii*+z++++*+++z+##+++++++####+#######+MMMMMxnz###zzzzzzzzzzzzzzznz##zzzzzzzzzzzzz
########+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiii*++#z++*+*+*+#*+#+++++++++##+####+##xxxxxMMMxz##zzzzzzz#zzzzzzzz##zzzzzzzzzzzzz
#########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiii*++++z#+*+*+*##*+#++*+*++++++++#+++#nnnnxxxMMMxnzzzzzzzzzzzzz#z###zzzzzzzzzzzzz
#########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiii+++***+zz*+***z#*+#++***++++++++++#zzzzzznnxxMMMMxzzzzzzzzzzzz###zzzzzzzzzzzzzz
#########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiii*+++***i*#n#+***n#**#++*****+++++++######zzznnxxMMMMxnzz#zzzzzzz#znz#zzzzzzzzznz
#########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiii#++******i*#zz+*+n#**#++*****++*++++########zzznnxxMMMxnzzz##zzzznnzzzzzzzzznnnn
#########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiii*n#+****iiiii*#zn+#n#**+++*******+**++++#######zzznnnxxMMxnzzz#zzzzzzzzzzzzzzzzzz
########+++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiii#nz+*****iiiiii*+zz#xz***#+*********+++++++#####zzzznnnxxMMMxxxxxxxnnnnnnzzzzzzzn
#########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiinnn#**i****iiiiiii+#zxxz+++*****+***+*+++++#######zzznnnnnxMMMMMMMMMxxxxxnz#+++##
########++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiii#nnnz+**ii**+**iiiiii*#nxx#++********+****+++#####zzzzznnnnnxMMMMMMMMMMxxxxxnz#+++
#########++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiii*nxnnn++***iii*+++*iiiii*+zxz#+*************+++###zzzzzznnnnnnxxMMMMMMMMMMMxxxxnz##
#########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiii*nxxxnn#+++**iiii*###+iiiiii*#nnz+**i**ii******++###zzzznnnnnnznnxMMMMMMMMMMMMxxxnzz
#########++++++++++++++++******************iiiiiiiiiiiiiiiiiiiiiiizMxxxxn#+##++**iiii*+##+*ii;ii**#nz+ii*iii******+++##zzznnnnnnzzznxxMMMMMMMMMMMxxxnz
#########++++++++++++++++****************i**iiiiiiiiiiiiiiiiiiiiiinxxxxxn+***+##+**iiii*###+*iiiiii*+#z++ii*******+++##zznnnnnzzzzzznnxMMMMMMMMMMMMxxx
#########++++++++++++++++*********************iiiiiiiiiiiiiiiiiiiinxxxxxn#***i**+#+***ii*+###+**iiiiii*+#z##++++++++#znxxnnnzzz#z###nnxxxMMMMMMMMMMMMx
#########++++++++++++++++*****************znnnxnz#iiiiiiiiiiiiiiizxxxxxxn#****ii**+#+***ii*+###+**iiiiiii**+#zzz#++#nxxxnnnzzz######znxxxxxxMMMMMMMMMM
#########+++++++++++++++++***************zMMxWMMxxnzzznxnn#*iii*zxxxxxxxn#+****ii***+++***ii*#zz#++**iiiiiii**++###nxxnnnnzzzzz####zzznxxxxxxxxxxxxxxx
##########+++++++++++++++***************+xWWMWWWWWMMMMMWWWWWxnnxxxxxxxxxn++++***iiii**++***ii*+#####+**iiiiiii***+zxnnnnnzzzzzz####z###znxxxxxxxxxxxxx
#########++++++++++++++++*************#zM@@WWWMxxxxxxxxMMMMW@@WMMxxxxxxxn++**+**iiiii****+#+#*+#+nz###++**iiiii**+nxnnnnzzzzzz####zn+++#znxxxxxxxxxxxM
##########+++++++++++++++***********+nxMW@@WxMMMxxxxxxxxMMMWWWWWWMMxxxxxz++#**++*iiiiii##nnz#+*++#znxzz##+**iiii*+xxnnnzzzzzzzz##znMn#####nxxxxxxxxxxx
#########++++++++++++++++*******+#zxxMMMMWWMWWWWMMxxxxMMMWWWWWW@W@WMMxxx#++z#**++***i*z#++zxxxnzz###+#nnzz#++****zxnnnzzz##zzzzzzzxxxz#++##zzznnxxxxxx
#########++++++++++++++++******zxxMMMxxnznWWWWWWWMMxxMWW@WWWMWWWWWWWMMxx#+##z#**++*i+#+#znxxxznnzzznxz##nnz##++#zxxnnnzz###zzzzzz#nxxxz#####zznznxxxxx
#########++++++++++++++++*****#xMMMMxzxxxnW@@@@@@WMMxMWW@WMMMxMWW@@WMMMz++++###**++*z+zznnnnn#nxn*zzzznn##nnz##nxxxnnzz#####zzzz#+#nxxxz#####zzzznxxxx
#########++++++++++++++++*****nxxMMn##xxxxW@@@@@@@WMMMMWWWWxxxnMWWWWWMx#ii++++##*i+n##zznnnnn#znn#zzz*znn##nznnxMxnnzz#######zzz+++#nxxn######zzzzzxxx
#########++++++++++++++++****+##znn#+#znxzW@@@@@@@WMMMMWWMMxxxxnxMW@WMx#+i**+ii+#*ixzx#nn##nz+zxMxn+**nznn##xnxMMxnzz########zz#++++#zxxzzz####z###znn
#########++++++++++++++++****+i*zzzz###nz#W@@@@@@@@WMMMWWMnxnnn#nMW@WMn#*i****ii++*#xMxnnz#nz*+z+zxMnnnnnxMzxMxMMxnz##++####zzz##++++#zxnzzz########zz
#########+++++++++++++++*****iiMMWWM++znzzW@@@@@@@@WWxMWWMnz#nxznMWWWWz*iii***iii+*+nnMxnz#nz###+z#MWMxnnWWWxWMMxnzz#++++###zz####++++#zxnzz##########
#########++++++++++++++++****ii#**zn*+nnxxW@@@@@@@WWMxMWWnxz#zx#zMMWWM+*i;ii*iiii*z#zn#xxz#nzi***+*xMWWMMWW@WWWMxnz##+++###zz#####+++++#znzz##########
#########++++++++++++++++****iiizMMzi*nnnxWW@@@@@@WMxnxMMnn#++n#zxMWWz*i;;ii*iiiii##nni#Mnnxz*zz*+#nxMWWWWW@@WWMxnz#++++##zzz#####+##+++##z###########
#########+++++++++++++++****i;*xz+xii*znnxWW@W@@@WMx#++nnxx#+*##nMWWM*ii;;ii*iiiiiz#xx*zxxxxz++***+znxMWWxM@@WWxnz#+++++##zzz####+#zn#++++#z##########
##########+++++++++++++++***i;+xxnxn;i;*+xWWW@W@@WMx#*izznxM++#xMMWM#iii;**iiiiiii#zzx*#nnxMnznnnnzznnxMxnWWW@Wxz##+++####zz##+++##nnz++++############
#########++++++++++++++++***i:;**+++;;;i*nWWW@W@@@WWMn#z+zxMznMMMMM#iiii+***ii***i##zn*+nnnMn#zzzznnxxnMzxxxxxxn#+++++###zz##+++++nxxn#++++####+######
#########++++++++++++++++***i:;i*+nz;;;i#nWWW@W@@@@@@MMMznMWMxxMxn****+##+*++++***++zn*nn#nx##z##++xWWWnznxnx#zz++++++#####++++++nxxxxn#++++#########+
#########++++++++++++++++****;;xxx#ni:i+znWWWW@@@@@@@WMxxxxxnzxz*iii*#zzzzzz+****+##xx#xz+nnznxxnnxMWWWnzznn##z#+++++####+**+++##nxxxxxz+++++########+
#########++++++++++++++++****;;x;z*##:;##zMWWW@@@@@@@Wxz#z##zz*iiiii#zznnnnnnz#*ii+#nnnzzznn++#zzzxWWWWnz#zz*+z++++++###+ii**+++zxxxxxxxz+++++########
#########++++++++++++++++****;:nnnnnz::+#+xWWWW@@@@@@Wn#+##+*i;;iiii*zzznnnnnnnz+***#znnz#nz*nzzznMWW@x##zz#+##+++++###+*iiii*+#zxxxxxxxx#++++########
#########++++++++++++++++*****:i+****::;++zWWWW@@@@@WMz#+*ii;;;;iiiii#nnznnnnnnnnzz#+zzxnnn#*+##zMWWWWz###+++#++++++###****++**#nxxxxxxxxz+++++#######
########+++++++++++++++++*****;,+xnz#z;::*#xWWW@@@@WMn#*ii;;;;;;;iiii*znnnnnnnnnnnnzznzxWWWMxxznMMW@@@n##++++#+++++##z#+**+##++zxxxxMMxxxnnz+++++#+###
#########++++++++++++++++******;,;i**z#:::*zM@@WW@WWMn+ii;;;;;;;iiiiiiznnnnnnnnnnnnnnnMxWWWWWWMMMMW@@@xn#+**+++++++##nz#**++#zznxxMMMMMMxxxn+++++#+#+#
#########++++++++++++++++*******i:**++*i::;*nW@xznxM#iiii;;;;;;;;iiiii+nnnnnnxxxxxxnnnxxMWWWMMMMWW@@@Mnnz#*+++++++##+zzz++++++#nMMMMMMMMMMxx#++++++++#
#########+++++++++++++++*********i;*z**+z+:;*nWM+**#+iiii;;;;;;;;iiiii*znxnnnnnnnxxxxxxxMMWWW@WW@@@@Wnz###+#+++++##+i*#z#++++*zMMWWWWWWMMMMxn#++++++++
#########++++++++++++++++**************i;:;*i*zMMMz**iii;;;;;;;;;iiiiiiznnxxxxxxxxxxxxxxMMWWWWWWW@@@xz#++###++++##+iii*+#+++*+xMMMnMWWWWWMMMxn++++++++
########++++++++++++++++***************iiiiiiii*zxxiiiiii;;;;;;;;iiiiii#nxxxxxxxxxxxxxxMMMMMWWWWW@WMz#++++#+++++##*iiii*+++*+xMxxn#zMMMWWWMMMx#+++++++
########+++++++++++++++++***************iiiiiiiiiiiiiiiii;;;;;;;;iiiiii+nnxxxxxxxxxxxn+xMMWWWWWWWWWn#++**+#++++##+++**ii*++zMMxxxn##xMMMMMWMMxz+++++++
########++++++++++++++++***************iiiiiiiiiiiiiiiiii;;;;;;;;iiiiii*nnxxxxxxxxxxx++zxnnMWWWWWWx#++***+#+++#zx#nMxnz**#xMMMxMxnzzxMMMMMMWMMz+++++++
########++++++++++++++++***************iiiiiiiiiiiiiiiii;;;;;;;;;iiiiiiiznnxxxxMMMMMn*#zznxWWWW@@xz++****+##+#zMWWMMMMMxxWWWWWMxnz#znxMMMxxMMM#+++++++
########+++++++++++++++++**************iiiiiiiiiiiiiiiii;;;;;;;;;;iiiiii#nxxxxMMMMMMx;+#zzxxnM@Mxz++****+####zxxxnnnnxMWWWMMxMM#+#znnxMMMMMMMMxz++#+++
#########+++++++++++++++***************iiiiiiiiiiiiiiiii;;;;;;;;;iiiiiii+nnxxMMMMMMMMz;*+zxMMW@xz++*iii*+z#zzxxxnnnnnMWWxxnxxxn+*+xnnxMMMMMMMMMMn#+#++
########++++++++++++++++****************iiiiiiiiiiiiiiii;;;;;;;;;iiiiiiiizxxxxMMMMMWWx:::*zMMWxz+**iiii*#zz#nxnnnnzxW@xxnnnnnx#++zMnznxMMMMMMMMMMxz##+
#########++++++++++++++++**************iiiiiiiiiiiiiiiii;;;;;;;;;iiiiiiii*zxxxMMMMWWWni:,:#MMMn+*iii;ii+z##zxxnnn#M@Wnnnnzz##n#++nnzzznxxxxMMxMWMMMxn#
########+++++++++++++++++**************iiiiiiiiiiiiiiiiii;;;;;;;;ii+++z+++#nnxxMMWWMni*zznMMMx#*ii;;;i*+#++xxxnn#x@@nnnz##+++#+##x###++zn#zMMMxxMMMMMx
########++++++++++++++++****************iiiiiiiiiiiiiiiii;;;;;ii+#znnnnnnnnnnnxxMWWx##zxMMMWx#*i;;;;ii+##+zxnnz#zW@Mzz##+++*++++zn#+**++#+#nnMnxxMWWMM
########+++++++++++++++++**************iiiiiiiiiiiiiiiiii;;;i+znnnnnnnnxxnnnnxxxxW@z#zxxxxWW#*i;;:;ii*zzz#xxnzzzx@W##++++***++++z#+***+++*++#xzznxMWWW
########+++++++++++++++++**************iiiiiiiiiiiiiiiiii;;i#nnnnnnnnnxMxxnnxMMxxMxzzxxxnnWW+i;;i;;ii#zznnxxnzznM@W+*++*****++++++****+++*+*+#+#znxxWW
########+++++++++++++++++***************iiiiiiiiiiiiiiiii;i#xxxxnnnnnxxMMxnxMx#znznnxMxz+zWW#;;;iii##zzznznz#zznMWM++#***iii+++**ii**+++*++++**+##zxxM
########+++++++++++++++++**************iiiiiiiiiiiiiiiiiii*xxxxxnnnnnxxxMxnnxzi#nzzxxn#+*+MMx;;;;;i+zzznn#z+iii+xWM:i++**iii+****i***++*++++ii**++#znx
#######++++++++++++++++++***************iiiiiiiiiiiiiiiiii#xxxxxnnnnnnxxnz#+zz:i#zzz#***i;nMM+;;;;*zz#zzn##*;;;;+WWi:+z#*iii**+******++++++i;iii**++#z
#######++++++++++++++++++***************iiiiiiiiiiiiiiiiiinMMxxnzzzzzzzn#i;:+z;,i*+*;;i;;;;xMMi;i*z###zzzz+;;i;;*MW#:;zz#iii#++*****++++++*;;;iiii**++
#######++++++++++++++++++***************iiiiiiiiiiiiiiiii+xxxxn##++++##z+i;**zn+#n;;;;::;:,+MMni+######zzz*;;;;;izWMi,;#z*i+x#+****+++#+***iiiiiiiii**
#######++++++++++++++++++***************iiiiiiiiiiiiiiiii#xxnn++++*++++znn+i#znnnz;:::::::,:nMMMz##zzzzzzz;:::;;;iMWx;.;##*nxz+***+++#+*******iiiiiiii
########+++++++++++++++++***************iiiiiiiiiiiiiiiiiznnnz++*****++znMzii+zn#+::::,,,,,,;nxz+#zz#z#zz+::::;;:;+MMxi.;+zxn#+*+++###+**iiii*****++ii
#######++++++++++++++++++***************iiiiiiiiiiiiiiiiizzzzz#**iii***#zx#i;i*++*,,,:,,,,,,,:*ii*++*++*+i,,,,:;:::#MMMx#*+z#+***+###znnz++*iiii*+xMx+
########+++++++++++++++++***************iiiiiiiiiiiiiiiiizzzzz+*i;;;iiii*#*;:;iiii,..,,,,,,;*iii;i*ii**i*:,,,:::::::inMMn*i#+++++###zzzzzz##+*i*#xMMMx
#######++++++++++++++++++***************iiiiiiiiiiiiiiiiizz###**i;:;;ii;i*i:::;;;,,,...,,:;*i*ii;i*ii*i*#n+:::,,,,::::;i*++######z+*+###z#+****+#zzzzn
#######++++++++++++++++++***************iiiiiiiiiiiiiiiii+z###*ii::;;ii;;;;;:;;;:;;,....,;**i*;iii*ii+i+nn*:,,,,,,,,,::i+#zznzzz##z*+#z#++*iiii+*#zzzz
########+++++++++++++++++***************iiiiiiiiiiiiiiiiii##++*i;:;;;ii;:;;;;;+znnz#i,,,,:+**#+ii*+*+++nnnn#*;:,,,,,,:i##zzzzzzz##z#**+++*iiii*+zzzzzz
#######++++++++++++++++++***************iiiiiiiiiiiiiiiiii*#+**i;:;;ii;;;;i+*iznzz###+;,:ii*+zn#+znnnnnnnxn####+*i;;i+##z###zzzz###z+i**+**++++zzzzzzz
########+++++++++++++++++***************iiiiiiiiiiiiiiiiiii*#++;;;;;iiii**++*+#######++++++*znnnxnnnnnnnxnnz##############zzzzzzz##zzzzzzzznzzzzzzzzzz
########+++++++++++++++++****************iiiiiiiiiiiiiiiiiiii##*;;;iiii*+i++#+*######++++++#nnnxxxxnnnnxxnnz#############zzzzzzzzz#zzzzzzznzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiii*++*iiii***#++##++#####++++++#nnxxxxnnnnnxxnnz########zzzz#z#zznznzzzzzzzzznxzzzzzzzzzzz
########+++++++++++++++++***************iiiiiiiiiiiiiiiiiii;i;ii***iiiiiii*+#z++#####++++++znnxxxxnnnnxxxnnz########zzzz#z#zzzznzzzzzzzzznnzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiii;iiiiiiiiiii*+#z*+#####+++++#znxxxxnnnnnxxxnnz#############z#zzzzzzzzzzzzzzzzzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiii;iiiiiiiiiiiii*++#+*+#####+++++#nnxxxnnnnnxxxxnnz############z#z##+zzznzzzzzzzzzzzzzzzzzzzz
#######++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+#+++#####+++++#nnxxxnnxxxxxxxnnz#####z####z#zzz##+#zzzzzzzzzzzzzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+++++#####+++++#nnxxnnnxxxxxxxnnn#####zz##znzz#z#####zz#zzzzzzzzzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+###++#####+++++znxxnnnxxxxxxxnnnnz#####z#zznzz########zzz#zzzzzzzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+###++#####+++++znxxnnxxxxxxxxnnnnzz#z##z#z#zzz###z####zzz#zzzzzzzzzzzzzzzzz
#######+++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#z#++#####+++++znxnnxxxxxxxxxnnnnzz#z##zzz###zzzzzzz##zzz##zzzzzzzzzzzznzzz
#######+++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii++znz+++####+++++nnxnxxxxxxxxxxnnnnz####zzz####zzzzznnzzzzz##zzzzzzznzzzznnzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#nn+++#z##+++##nxnxxxxxxxxxxxxnnnzzz##z#zz###zznzznnzzzz##zzzzzzzzzzzzznzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#+zz+++#z##+++##nxxxxxxxxxxxxxxnnnnzz####zz#z#zznzzzzzzzzzzzzzzzzzzzzzzzzzzz
#######+++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*nn#zz+++#z##++++#xxxxxxxxxxxxxxxxxnnzzzz##zzzzz#zzzzzzzzzzzznzzzzzzzzzzzzzzzz
########++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiinnzzz+++#zz#++++zxxxxxxxxxxxxxxxxxnnzzzzzzzzzzz#z#zzzzzzzzznnzzzzzzzzzzzzzzzz
########++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*##zz+++#nz#++++nxxxxxxxxxxxxxxxxxxnzzzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzzzzzzzzzz
########++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii++zx+++#nn++++#xxxxxxxxxxxxxxxxxxxxzzzzzzzzzzz#zzz#zzz#zzzzzzzzzzzzzzzzzzzzz
#######+++++++++++++++++++***************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+nx++##nz++++zxxxxxxxxxxxxxxxxxxxxnzzzzz#zzzzzzz###zzzzzzzzzzzzzzzzzzzzzzzn
#######+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+nn++##nz+++#nxxxxxxxxxxxxxxxxxxxxnnzz#z#z#zzzzz##zzzzzzzzzzzzzzzzzzzzzzznz
#######+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+nn++#zz#+++zxxxxxxxxxxxxxxxxxxxxxxnzzzzzz#zzzzz#zzzzzzzzzzzzzzzzzzzzzzzznn
#######+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+nn++#zz#++#nxxxxxxxxxxxxxxxxxxxxxxxzzzzz#zzzzz##zzzzzzzznzzzzzzzzzzzzzzzzn
#######+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**+zn++##z#++zxxxxxxxxxxxxxxxxxxxxxxxxnnzzz#zzzzzzznzzzzzznnzzzzzzzzzzzzzzzzn
#######+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii#z+#x++##z#+#nxxxxxxxxxxxxxxxxxxxxxxxxxnzzzznzzzzznzzzzzzzznzzzzzzzzzzzzzzzzz
#######+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiizn##n++####+#xxxxxxxxxxxxxxxxxxxxxxxxxxxnzzzzzzzzzz##zzzzz#zzzzzzzzzzzzzzzzzz
#######+++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#+#n+#####+zxxxxxxxxxxxxxxxxxxxxxxxxxxxxnzzzzzzzzz##zzzzz#zzzzzzzzzzzzzzzzzz
#######+++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*z#n#######nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnzzzzzzzzz#zzzzzzzzzzzzzzzzzzzzznzz
#######+++++++++++++++++++*****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+##n######znxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnzz#zzzzzzzzz##zzzzzzzzzzzzzznnnnz
########+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*++#n######nnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnzz#zzzznnzzz##zzzzzzzzzzzzzznnznz
########+++++++++++++++++++****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+#z######nnnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnzz##zzzznzz#zzzzzzzzzzzzzzzznnzzn
########++++++++++++++++++******************iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*#zz#####znnnxxxxxxxxxxxxxxxMMxxxxxxxxxxxxxnzzzzzzzzzz#zzzzzzzzzzzzzzzznzzzn
########++++++++++++++++++******************iiiiiiiiiiiiiiiiiiiiiiiiiiiii*+#zn#####znnnxxxxxxxxxxxxxxxMMMxxxxxxxxxxxxxnnzzzzzzzzzzxz#zzzzzzzzzznnzzz#z
########++++++++++++++++++******************iiiiiiiiiiiiiiiiiiiiiiiiiiiii**+znz####nnnnxxxxxxxxxxxxxxMMMMMxxxxxxxxxxxxnnnzzzzzzznxnnznzzzzzzzzznnzz###
########++++++++++++++++++******************iiiiiiiiiiiiiiiiiiiiiiiiiiiii**+znz####nnnnxxxxxxxxMxxMMMMMMMMxxxxxxxxxxxxxxnzzzzzzzxxnnnzzzzzzzzzznnzzzzz