#######@xnzzzzzznnnnnzzzzznnnnnnnnnnnnnnnnnnnnnnnnnnnnnxMWWWxxxxxxMMMMMMMMMMxxxxxnnnnzzz##+znnxxxxnzz############zzzzzzzznnnnnnnnnnzzzzzzzzzzzzx@#####
#######@xnzzzzzzzznnzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnnznxMWWWMMxMxMMMMMMMMMMxxxnnnnnzzz###+++#nnxxMMMxz############zzzzzzzznnnnnnnnzzzzzzzzzzzzzzx@#####
#######@xnzzzzznznzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnnznnMWWWMMMMMMMMMMMMMMxxxxnnnnnzz##+***++#znxMMMMxn############zzzzzzzznnnzzzzzzzzzzzzzzzzzzzx@#####
#######@xnzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnnnnnnnnzznxMMMMMMMMMMMMMMMMMxxxxxnnzzz##++*****+#znxMMMMMxz###########zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzx@#####
#######@xnzzzzzzzzzzzzzzzzzzzzzzznzzznnnnnnnnnnnnzznxMMMMMMMMWMMMMMMxxxxxnnnnzz###+**i****#znnxMMMMMMn##########zzzzzzznnzzzzzzzzzzzzzzzzzzzzzzx@#####
#######@xzzzzzzzzzzzzzzzzzzzzzzzzzzznnnnnnnnnnnnnzznxMMMMxxMMWMMMMxxxxxnnnnzzz###+**ii**++#znnxMMMMMMxz#########zzzzzznnzzzzz######zzzzzzzzzzzzx@#####
#######@xzzzzzzzzzzzzzzzzzzzzzzzzzznznnnnnnnnnnzzzzxMMMMxxxxMMMMMxxxxnnnnzzzzz##++*iii*+++#znnxMMMMMMMn#+#######zzzzzznnzzzz#######zzzzzzzzzzzzx@#####
#######@xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxxMMMxxxxxMMMMxxnnnnzzzz###+++**iii*+++#znnxxMMMMMMx##########zzzznnnzzzz########zzzzzzzzzzzx@#####
#######@xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxxxxxxxxxxxxxxxxnzzz####++++***iiii*+++#zznxxxMMMMWx##########zzzznnnzzz##########zzzzzzzzzzx@#####
#######@xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzznxxnnnnnnnnnnnnnnzz##+++++****iiiiiii+++##znxxxMMMWWMz#########zzzznnnzzz##########zzzzzzzzzzx@#####
#######@xzzzzzzzzzzzzzzzzzzzzzzzzz###########z##zznxnnz#zzzzzzznnnnz##+++*****iiiiiiiii++++##znxMMxxxMMz#########zzznnnnzzz############zzzzzzzzx@#####
#######@xnzzzzzzzzzzzzzzzzzzzz##################zznxnz#####+####zzz#++********iiiiiiii*+++++##zxMMMxxMMz#########zzznnnnzz##################z#zx@#####
#######@xnzzzzzzzzzzzzzzzzzzzz###################znxnz####++++++###++**********iiiiiii*++++++#znxMMMMMMn########zzznnnnzzz#################z##zx@#####
#######@xnzzzzzzzzzzzzzz#########################znxz###++++++++++++***********iiiiiii*+++###zznnxxMMMMn#######zzzznnnnz###+++#############zz#zx@#####
#######@xnzzzzzzzzzzzz###########################znnz##++++++++++*****+*********iiiiii*+++###znnxxxxMMMnz#####zzzznnnnnz##+++++############zzzzx@#####
#######@xzzzzzzzzzz######################++######znz###+++++++++***************iiii****+#####zznxMMMMMMxzzzzzzzzznnnnnzz#+++++++#######zzzzzz#zx@#####
#######@xzzzzzzzzzz###################++++++#####znz###++++++++************************+####zznnxMMMWWMxzzzzzzzznnnnnnzz++++++++#######zzzzzzzzx@#####
#######@xzzz##z###############+++++++++++++++####znz###++++++++**********ii***********++###zzznnxMMWWWWxnzzzzzzznnnnnzz#+++++++++######zzzzzzzzx@#####
#######@xzzz##z###############++++++++++++++#####zzz###++++*++*********iiii***********++##zzznnnxMMWWWWMn###zzzznnnnnz##++++++++++#####zzzzzzzzx@#####
#######@xzzz##z####################+++++++######zzzz###++++***********iiiiiii********++###zzznnxxxMMMMMMn####zznnnnnnz#++++++++++++++##zzzzzzzzx@#####
#######@xzzz##z#################################zzzz###++++*********iiiiiiiiiii******++##zzznnnxxxMMMMMMn####zznnnnnz#+++++++++++++++#########zx@#####
#######@xzzzz#z################################zzzzz###++++********iiiiiii;iiii******++##zzzznnxxxxxxxxxz####zznnnnz##++++++++++++++##########zx@#####
#######@xzzz##z###########zzzzzzzzzzzz#######zzzzzzz##+++++********iiiii;;;iiii******+###zzzzznxxxMxxxxxz###zznnxnnz#+++++++++++++++###########x@#####
#######@xzzz###z#z########zzzzzzzzzzzzzzzzzzzzzzzzz###++++***********iii;;;iiii******+###zzzznnxxxxxnnnxz###zznxxnzz++++++++++++++++###########x@#####
#######@xzzz###z#z##########zzzzzzzzzzzzzzzzzzzzzzz##+++++********i***iiiiiiiii******+###zzzznnxxxxnnnnnn##zznnxnnz#++++++++++++++++###########x@#####
#######@xzzz###z#z############zzzzzzzzzzzzzzzzzzzzz##+++++******iii***iiiiiiii*******+####zzznnxxxxnnnnxn##znnnnnnz#+++++**++++++++############x@#####
#######@xzzz##################zzzzzzzzzzzz###zzzzzz#++++++************iiiiiiii*******++###zzznnxxxnnnnnnn#zznnxnnz#+++++****+++++##############x@#####
#######@xzzz####################zzzzzzzzz####zzzzzz#++++++************iiiiiiii******+++###zzznnxxxxnnxxz++zznnnnnz#++++*****+++++##############x@#####
#######@xzzz#####################zzzzzzzz####zzzzzz#++++++************iiiiiii*******++++###zznnxxxnnMWx+i#nnnnnnz##+++++****+++++##############x@#####
#######@xzzz#################################zzzzzz#++++++*****i******iiiiii********+++++###znnxxxxxxnz###zznnnzz#++++++****+++++##############x@#####
#######@xzzz#################################zzzzzz#++++++***iiiii****iiiiiii******+++++++###znxxxxxxnznn#znnnnz##++++++****+++++##############x@#####
#######@xzzz#################################zzzz#zz##++++***iiiii****iiiii***++++++++++++###znnxxxxxnnnz##nxnzz#+++++++*****+++++#############x@#####
#######@xzzz##z##############################zzzz#zz####+++**iiiii*****iiii**++####+#++++++###znxxxxnnnz###xxzz##+++++++****++++++#############x@#####
#######@xzzzz#z##############################zzzzzzz####++++**iiii***+++++++##z#######++++++##znnxxnnnz#++#xxz##++++++++****+++++++############n@#####
#######@xzzzzzz##############################zzzzzzz#zzzz###++**ii**++#zzzznnnzz#######+++++##znnxxnnzz#++#xnz##++++++++****+++++++############n@#####
#######@xzzzzzzz#############################zzzzzzz#znnnnnnz#+*****++#zznnnnnnz#######++++++#zznxxnnzz#++#xnz#+++++++++****+++++++############n@#####
########xzzzzzz##############################zzzzzzzznnnxxxxnz#+****++#zznnzzz##+######++++++#zznxxnnnz#++#nz#++++++++++****+++++++####+#+#####n@#####
#######@xzzzzzzzzz##########################zzzzzzzzznnnnnnnnz#+++*+++#zzzz#++++++######+++++##znnnnnnnz###nz+++++++++++***++++++#######+++++##n@#####
#######@xzzzzzzzzzz########################zzzzzzzzzzzzz####zzz#++++++#######++++++#####++++++#znnxnnnnz###z#++++++++++****++++++#######+++++##n@#####
#######@xzzzzzzzzzzz######################zzzzzzzzzzzz##++++#zzz##++++##zzz##zzzzzzzz##++++++##znxxnnnnz#+#z#++++++++++***+++++++######+++++++#n@#####
#######@xzzzzzzzzzzzz####################zzzzzzzzzzzzzz#######zzz#+**++#zzzznnxxnnnnz#+++++++##znxxxnnz##++z#+++++++++++*++++++++########++++##n@#####
#######@xzzzzzzzzzzzz#################zzzzzzzzzzzzzzzznnnnnx#######+*++####znnz#######++++++###znxxxnnz+++#z#+++++++++*****+++++###########+###n@#####
#######@xzzzzzzzzzzz#####################zzzzzzzzzznzznnxnnn######+**++++#####++++++++++++++###znxxxnn#+++zn+***++++++*****+++++###############n@#####
#######@xzzzzzzzzzzz#######################zzzzzzzznzzzz##########+***++++####++++++++++++++###znxxxxz#+++nn*;;i**+++******++++++##########+###n@#####
#######@xzzzzzzzzzz#####++++++++#############zzzzzzz###z#########++***+++++++++++******+++++###znxxxxz#+*+zn*:,:ii**+***++*++++++##############n@#####
#######@xzzzzzzzzz#####++++++++++++++########zzzzzzz#+########++++++****++++++++********+++++##znxxxxz++*+zn*;:,::;i***+++**+++++++############n@#####
#######@xzzzzzzzzz#####+++++++++++++++#######zzzzzzz++++#+++++++++++******+******ii*****+++++##znxxxxz+**+zz+;;::,,:i********++++++++++++######n@#####
#######@xzzzzzzzzz####++++++++++++++++#######zzzzzzz++++++++++++++#++++*+++**iiiiiii****+++++##zzznnn#+**+zz+i;::,,,:i********++++++++++++++###n@#####
#######@xzzzzzzzzz####++++++++++++++++#######zzzzzzz+++++++++++++##+++++++#+*iiiiiii*****++++#####zzz#+*++z##i;;::,,,,:;iii****++++++++++++#++#n@#####
#######@xzzzzzzzzz#####+++++++++++++++#######zzzzzzz#++++++++++#++++++++++#++**iiiii******++++########+++zz##i;;;::,,...,,,,::;i**+++++++++++##n@#####
#######@xzzzzzzzzzz####+++++++++++++++#######zzzzzzz#++++++*++##+++**+++++++#+***iii*****+++++#########nxMn#+i;;;;:,,,........,,:;i*+++++++++##n@#####
#######@xzzzzzzzzzz#####+++++++++++++########zzzzzzz#+++****+###++***++++++++#+**i******++++++########zxMMn#+i;;;;;::,,,,,,.......,,;i**++++###n@#####
#######@xzzzzzzzzzzz#######+++####++#########zzzzzzz##+++***####++***++++++##zz#***i**+++++++#########zxMMn#+i;i;;::::,,:,:,..,......,:i*++#znnx@#####
#######@xzzzzzzzzzzz########++###############zzzzzz#+++++**+zzzz#+*+++#zzzzznnnn#+****+++++++#########zxMxz#+;;;ii;;;::::::,,,,,,......,:;i#znxM@#####
#######@xzzzzzzzzzzz########++####++#########zzzz#+*i++++*++znxxxz####nxxMxnnnnnn#+**++++++++#########zxMxz#+iii;;;;;;;;::;::,,,,,,,,....,:;i+zx######
#######@xzzzzzzzzzzz########++######+########zz#+i;;i+#++++#nxMMWMnnznxxMMxxxxxxxnz++++++++++#########zxMn##+ii;iii;i;;;;;;;:::,,,,,,,,.,,,.,,;z######
#######@xzzzzzzzzzzz#########+#####+########+*i;::i**###+++#nxMMMMMMxxMMMMMxxxxxxxxz#+++++++##########zMWnzz+iii;;iiiiii;;;::::,,::::::,,,,,,,:#######
#######@xzzzzzzzzzzz#########+##########++i;::,::;*+#zz##+#zxMMMMMMxxxMMMMMxxxxxxxxnz+++++++##########nMMnzz*;i;iiiiii*ii;;;:::::::::::,,,,,,,:#######
#######@xzzzzzzzzzzzz########+####+++++*i;:::;;;;i+#zznz###zxMMMMMMxxxMMMMMxxnnxxxxxn#++++++#########znMMzz#**iiiii****iii;;;;;:::::::::::,,,::#######
#######@xzzzzzzzzzzzz##############+*ii;:;;;ii;;ii+zznnn###zxMMMMMxxznnxxxxnnzzznxxxn#+++++##########znMMnz#iiiiii*****iii;;;;;;;::::::::::::;;#######
#######@xzzzzzzzzzzzz#############+*;;i;;iiiiiiii*+znxxnz##zxMxxxxxnzzznnnnnnnnnnnnnnz+++++##########znxxnn#**iiiii****iii;;;;;;;;;;;::::;;::;;z######
#######@xzzzzzzzzzzzz###########+*i;;;iiiiiiiiii**+znxxnz###xMxxxnnnxxnnxxxxxMMMMMxzz#+++++#########zznxxnz+***iii*****iiiii;;;;iiiii;;;;;;;;;;z######
#######@xzzzzzzzzzzzz##########+i;;;iiiiiii***i****#zxxnnz##zxxnxn#zxxxxxxxxxxMxMMn###+++++#########znnxnnz****iii*****iiiiiiiiiiii;iii;;;;;;;;z######
#######@xzzzzzzzzzzzz#######+#*i;;iiiii**ii********+zxxnnz##znnnxx#zxxxxxxxxxxnznnz##++++++########zznnnnnz****iii*****iiiiiiiiiiiiiiiii;;;;;;;z######
########xzzzzzzzzzzzzz######+*;;ii*i*ii************+#xxnnzz##zzzxMMMMxxxxxxnzz##zz###++++++#######zznnnnnn#****iii*+***iiiiiiiiiiiiiiiiiii;;;;;z######
#######@xnzzzznzzzzzzz#####+i;ii********************+nxnnnz###zznxWMxxxxxnnz##+#z+###++++++#######zznnnnnz+*******++***i**ii***iiiiiiiiiiiiiii;z######
#######@xnznnnnzzzzzzzz###+i;i**********************+nxnnnzz###zznxxzzzzzzz###zz++###++++++#######znnnnnnz+*******++***i*******iiiiiiiiiiiiiiiiz######
#######@xnnnnnnzznzzzzzzz#*ii***********************+nxnnnnn######zzz#########z+*++++++++++#####zzznnnnnn#*++*****++*************i**i*i****iiiiz######
#######@xnnnnnnzznzzzzzz#*ii***++**************++***+zxnnnnMz#####zzz##++#z#+++++++++++++++####zzznnzznnz+++++****++*************i*********iiiiz######
#######@xnnnnznzzzzzzzz#*ii**++++**************++**++#nnnnnWn######zzz######**+++++++++++++####zzznzzzzn#++++****++*************************iiiz######
#######@xnnnzzzzzzzzzz#*i***+++++******************++#znnnxWMz#####z#######+**++++++++++++####zzzznzzzzz+++++****++***************************iz######
#######@xnzzzzzzzzzz##****+++++++****+++++++***+*+*+*+#znxMWMz###########+++++++++++++++++###zzzznzzzzz#++++++**+++****************************z######
#######@xzzzzzzzzzzz#***+++++++++++*++++++++***+*+++*+##nxMxxnz########+++++++++++++++++++##zzzznzzzzzz+++++****+++++**************************z######
#######@xzzzzzzzzzz#+*+++++++++++++*++++++++***+*+++*+++znnnxxz########++++++++++++++++++#zzzzznnzzzzz#+*+++****++++++*************************z######
#######@xzzzzzzzzzz#**+++++++++++++*++++++++***+*+*+*+++#zznxxnz########+++++++++++++++++#zzzzznzzzzzz+**++****+++++*+*************************n######
#######@xzzzzzzzzzz+*++++++++++++++*++++++++*****+*+*++++#zzxMxn##++#####+++++****++++++##zzzzzzzzzzz+*++++***++++++********************+******n######
#######@xzzzzzzzzz#+++++++++++++++++++++++++*****+*+*+++*#zzzxMnz#+++###++++******+++####zzzzznzzzzzz**+++****++++++******************+*+******n######
#######@nzzzzzzzzz#+++++++++++++++++++++++*+*****+*+*++++#nz#nMMn##+++#++++*******++#####zzzzzzzzzzz+*+**+****++++++******************+*+**+++*n######
#######@nzzzzzzzz#++#+++++++++++++++++++++*++**+*+*+*++++#zz##nMxz#++##++++******++#####zzznnzzzzzz#***++****+++++++***************+**+++*++**+n######
#######@xzzzzzzzz+*######+++++++++++++++++++++*+*+*+*++++++#z#zxxn#++##+++*******+######znnnnzzzzz#+*+++++**+++++++*******+++******+**+++++++*+n######
#######@xzzzzzzz#++########+++++++++++++++++++++***+++++++++##znxxz####+++*****+++#####zznnnzzzzzz+*++++++*++++++++******++++******++++++++++++n######
#######@xzzzzzzz+++########++++++++++++++++++++*+*+*++++++++##zznxnz##++++****+++#z###zznnnzzzzzz#++++++++*++++++++*****+++++******++++++++++++n######
#######@xzzzzzzz++#########++++++++++++++++++++*+*+*+*++#+++###zznnnz##+++**++++#z###zznnnzzzzzz#++++++++++++++++++*****++++++*+*++++++++++++++n######
#######@xzzzzzz#+##########++++++++++++++++++++*+*+*+*++#++++###zznnnz###+++####zz##zznnnnzzzzzz+*++++++++++++++++******++++++*+*++++++++++++++n######