i;i;;;;;;;iiii;i;;;;;;;;;;;iiii;;;iiiiiiiiiiiii***+#znnnnz#+*******+#nxMxxxMxxMMMMWWWWWMWWMMMWMWWMWWWWWMMWWWMW@@#######@@@WWMMMWW@@@@WMMMMMMxxxxxxxxxx
i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiii**+#znnnnz#++******+znxxxxxMMxxxMMMMMWWWMWMMWWMWWMMMWMWMWWMMWWW@@@#####@@@WWMMMWW@@@@WMMMMMMxxxxxxxxxx
ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii**+#znnnnz#++*****+#nxxxxxxMxxxxxxxxxxxMMWMMWWMMMMMMMWMW@WMMWWWWWMW###@@@WWMMMWW@@@@@WMMMMMMxxxxxxxxxx
iiii;;;;iii;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii**#znnnnz#++***+zznxxxnnxxxxxxxxnnnnxxMMMMMWWWMxWMMMWWW@@MWWWWWWWW@@@@@@WWMMMWW@@@@@WMMMMMMxxxxxxxxxx
iiiiiiiiiiiiiiii;iiii;;;;;;;;;;;;;iiiiiiiiiiiiiii**#znnnnz#++**+#nnxxxnnzzzzzzzznnnnnnxxxxxMMWWWMWMWWMWW@@WWWWWWWWWWW@@@@WWMMWWW@@@@@WMMMMMMMxxxxxxxxx
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*+#znnnnz#++**znnnnxnz###########zzzzznnxxxMMWMMWWWWMWW@WMWWWWWWWWMW@@@WWMMWWWWWWW@@WMMMMMMMxxxxxxxxx
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***+#znnnnz#+++#xMxxzz##+++++######+#####zznnxxMMMWWWWWWW@WMWWWWWWWMMW@@@WWMMMWWWWWW@@WMMMMMMxxxxxxxxxx
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii******+#znnnnz#+++nxxnz++++++++++++++++++++++#zznnxxMMWWWWWW@MWWWWWWWWMWW@@@WWMMMWWWWWW@@WMMMMMMxxxxxxxxxx
;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*****+#znnnnz##+#nxn#++++++++++++++++++++++++##zznxxMMWWWWW@WWWWWWWWWWWWW@@WWMMMWWWWWW@@WMMMMMxxxxxxxxxxx
;;;;;;;;i;;i;iiiiii;;;;;;;iiiiiiiiiiiiiiiiiii*****+#znnnnz###nnz#++++++++++++++++++++++++++###znnxxMWWWWWWWWWWWW@WWWWWWWWMMMMWWWWWW@@WMMMMMxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiii***##nnnzz#zxxn#+++++++++++++++++++++++++++####znnxxMWWWWWWWWWWW@WWWMMMWWMMMWW@WWWW@@WWMMxMMxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiii**+#znnnz#nxx##+++++++++++++++++++++++++++####zzznxxMMWWWWWWWWW@WMMMMMMMMMMWW@@WWW@@WWMMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii**#zznnnzzxxz###++++++++++++**++++++++++++######zznxxMMWWWWMMWWWWWMMMMMMMMMWW@@WWW@@@WMMxxxxxxxxxxxxx
i;;;;i;ii;;;;;;;;;;;iiii;;;;;;;;iiiiiiiiiiiiiiii**+#zznnnzzxn#####++++++++++*+++++++++++++++#####zzznnxxMMMMMMMWWWWMMMMMMMWWWW@WWWW@@@WMMMxxxxxxxxxxxx
;;;;;iiii;;i;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiii*****+#zznnnznxz#####++++++++++++++++++*+++++++######zzznnxxxMMMMMMMWWMMWWMxxMMWWWWMWW@@@WMMMxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiiiiiiiiiii******+#znnznzxn##+##++++++++++++++++*++++++++++++####zzzznnxxxxxxMMMWMWMMMMxxMMMWWWMMW@@@WMMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;i;iii;iiiiiiiiiiiii*****+#znnnznxz##+++++++++++++****++**+*+++++++++####zzzzznnnnxxxMMMWWWWWWWMMMMMWWWMMWW@WWMMMxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiii****+#znnnnxn#zz##++++++++*+++*****++*++++++++++####zzzzznnnnnxxxMMWWWWMMMMMMMMWWWWWWW@WWMMMxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii***+#nnnnxznxxxnz#++++*++++*******+++++++++++#####zzzzzznnnnnnxxMMWWWWWMMMMMMWWWWWWW@WWMMxxxMxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiii**+#znnnxnMMWWMMn#++***+*+*******+++++++++++######zzzzzznnnnnnxMMMW@WWWxxxMMWWWWWWW@WWMMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiii*+#znnnxMWWMWMMxz++*************++++++++#########zzzzzzzznnnnxxMMW@@@WMMMMMMWWWWWW@WWMMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiii**+#zznxxMxnxMMMxn#+******+***++*++++++++#########zzzzzzznznnnxxMMWWWMMMMMMWWWWWWWWWWMMMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii**+#znnxxxzz#zxMMnz#+************+++++++########z##zzzzzzznnnnxMMMWWWWMMMMMWWWWWWWWWWMMxxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiii***+#zznxnz####zxMxnn#+***********++++++++#######zzzzzzzzzznnnxxxMMMMW@W@WMMMWWWWWWWWWWMMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiii**+#zznz#######zxMnxn#**********++++++++++######zzzzzzzzzzznnnxxxMMMMW@@@WWWWWWWWWWWWWMMxxxxxxxxxxxxx
:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;iiiiiii*+#zzz#########zxxnz#+********++***++++++++##zzzzzzzzzzzznnnnxxxMMMMMWW@@MMWWWWWW@WWWMMxxxxxxxxxxxxx
;::::::::::::::::::::::::::::::::::;;;;;;;;;;;iiii*+#zz####zzzzzzzznznz#+*******++++*+++++++++##zzzzzzzzzznnnnnxxxMMWMMWWM@WMMW@@WWWWWWMMxxxxxxxxxxxxx
;;;:;;;;;;:::;;::::::::::::::::::::::;;;;;;;;;;iii*+#zz#zznxxxxnnzzznxz#+*****++#####znzz#+#######zzzzzzzznnnnxxxxMMMMMMWWWW@WMW@@@W@WWWMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;;;;;;;ii*+#z##nxMxxxxxxnzzznz#++++++#zznnnxMMxxnzz#####zzzzzzznnnnnnxxxxMMWWWMWWWWWWMMW@@@W@WWMxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii*+#z#znxxz#zzxxxn######++++#znnnnxMWMMMMMxnnzzzzzzzzzznnnnnnxxxxMMWWWWMMW@@W@WWW@@@@WWWxxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiii*+#z#znx#+***+znn###+#+#####znnnxMMWMWWWWWWMxxnzznnzznnnnnnnxxxxMMWWWWWWWW@@@@@WWW@@WWWMxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii;iiiii*+###znn++zz+*+nnz##+++#####znnxxxMMWWWMWWWWMMMxznnnnnnnnnnxxxxMMWWWMWWWWWW@@@@@@W@@@WWWxxxxxxxxxxxx
;;;::;::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiii*+###nnz#xxMn#+#nz###++++++#zzznnnnxxxxxMMWWWWWMnznnnnnnnnnxxxMMMWWWWWW@WWW@@@@@@@@@@WWWMxxxxxxxxxxx
;::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;i*+++#znzzxzMn#*+zz##++++++##zzzzzznznzz#zznMWWWMxnnnnxnnnnxxxxMMMWWWWWWW@WWW@@@@@@@@@@@WMxxxxxxxxxxx
;::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;ii++##zznnxMWx#+#zz##++++###zzzzzznnnzz####zznMMWMxnnxxxxnxxxMMMMWWWWWWWW@@@WW@@@@@@@@@@WMxxxxxxxxxxx
;;;;;;;;;:::::::::::::::::::::::::::::;;;;;;;;;;;;i++####znnnxnz#zzz##+++##znnnnzzznxxxnnz####znnMWxnnxxxxnxxxMMMWWWWW@W@WW@@@WW@@@@#@@@@WWxxxxxxxxxxx
;;;;;;;;;;;;;;;;;::;:::::::::::::::::;;;;;;;;;;;ii*+######zzzzznnnz###+++#znnnnzzzxxxxxxxnz###zznxMMxxxxxnnxxxMWWWWW@W@@@@@@@@@WW@@@@#@@@@WMxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;iiii+++++####zzzzzz####++##znnnnnnnnnxxnxxMxnnz#zznnxMxxxxxnnxxMMWWW@W@@@@@@@@@@@@@W@@@##@@@WMxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiii*+++++###zzzz######+++#znnnnnnnzzz#+++znxxxnz#znnxMxxxxxnnxMMMWWW@@@@@@@@@@@@@@@@W@@###@@@Wxxxxxxxxxx
;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;iiii+++++##++###+++###+++#znnnnnnzznz+*+##+#nxxxnzznnnMxxxxxnnxMMMWW@@@@@@@@@@@@@@@@@@@@@###@@Wxxxxxxxxxx
:::::::::::::::::::::::::::::::;::::;;;;;;;;;;ii*#+++++#++++++++##++++#nnnnnnn#xn#+#nxn#+#nMMxzznnnxxxxxxnxxMMMWW@@@@@@@@@@@@@@@@@@@@@@###@WMxxxxxxxxx
::::::::::::::::::::::::::::::::::::::;;;;;;;;;i+#+++++++++++++###+++#znnnnnnnznz#+nnWMn+#zxMMnnnnxxxxxxxxxxMMMWW@@@@@@@@@@@@@@@@@@@@@@@##@@Mxxxxxxxxx
:::::::::::::::::::::::::::::::::::::::;;;;;;;;*##++++++++*++++#++++#znnnnnnnnzzzzzxx@Mn##zxMMxnnnnxnxxxxxxxMMMW@@@@@@@@@@@@@@@@@@@@@@@@###@Mxxxxxxxxx
::::::::::::::::::::::::::::::::::::::::::;;;;;+#+++++++++*+++##+++##znnnnnznnzzzzznxWMxzznnxMxnnnnxnxxxxxnxxMWW@@@@@@#################@@##@Mxxxxxxxxx
;;:::::::::::::::::::::::::::::::::::;;;;;;;;;i++++++++++**++##+++##znnnnnzzzzzzzz#zznnzzznnxxxnnnnxnxxxxxxxxxMW@@@@####################@##@Wxxxxxxxxx
;;;;;:;;:;;;:;;;;;;;;:::::::::::::::;;;;;;;;;i*+++++*+++++++#+++++#znnnnzzzzzzz###zznnnnnnxxMxxnnnnnnnnnnnxxxxMW@@@@####################@@#@@Mxxxxxxxx
;;:::::::::::;:::;;:::::::::::::;;;;;;;;;;;iii*#+++***+++++###+++#zznzzzzzzzz#####zzzzznnnxxxxxxnnnnnnnnnnnxxMWW@@@@@####################@##@Mxxxxxxxx
:::::::::::::::::::::::::::::::::;;;;;;;;;;;ii+#++****++++#####+##zzzzzzzzzzz######zzzzzznnnnnxnnnnnnnnnnnnxxMWW@@@@@#######################@Mxxxxxxxx
::::::::::::::::::::::::::::::::::::;;;;;;;;;i+#++****+*++####++#zzznnnzzzzzz####+###zzzzzznnnnnnznzznnnnnxxMMW@@@@@@#######################WMxxxxxxxx
::::::::::::::::::::::::::::::::::::::::;;;;;;##+++***++##++##+##zzznnxnnzzzz##++#+######zzzzznnzzzzznnnnnxxMW@@@@@@@######################@Wxxxxxxxxx
::::::::::::::::::::::::::::::::::::::::::;;;;##++++++######+++##zznnnnnnnzzzz#+++##+#######zznnzzzznnnnnnxMWW@@@##@@######################@Wxxxxxxxxx
;;:::::::::::::::::::::::::::::::::::::::::::i##+++##znzz###++##zznnnnzzznnnzz#+++++########zzznznnzznnnnxxMW@@@@#########################@@Wxxxxxxxxx
;;;;;;;;;;;;;::::::::::::::::::::::::::::;;;;i######znnznxz#++#zzzzzzzzzznxnzz#+++++#######zzzznnnnnnnnnnxxW@@@@##########################@@Mxxxxxxxxx
;;;;;;;;;;;;;;;::;:::::::::::::::::::;;;;;;;;i#####zxxzznMx###zznnzzzzzznnxxz##++++++#####zzzzznznnnnnxnxxMW@@@@##########################@@Mxxxxxxxxx
;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;i####zxxz##znnz#zznxnnzzzznnnxxn##+++++++#####zzzzzznnnnnnxxxMW@@#@#########################@@Wxxxxxxxxxx
:::::::::::::::::::::::::::::::::::::;;;;;;;;i###znxz####zzzzznxMMMxnznnxnxxxz#+++++++#####zzzzznnnnxnnxxxM@@@@@@########################@@Wxxxxxxxxxx
::::::::::::::::::::::::::::::::::::::::;;;;;;###zxzzzzzzzzzzznMWWW@@MnxxxxMxz#++++++++####zzzznnnnnxxxxxMM@@#@@@#@###@#################@@@Mxxxxxxxxxx
:::::::::::::::::::::::::::::::::::::::::::::;###nxzzzzzzzzzznnxMMMMMMnxxxMMxz#+++++++++###zzzznnnnnxxxxxMW@#@@@@@@@@@W@@###############@@@xxxxxxxxxxx
;:::::::::::::::::::::::::::::::::::::::::;;;;###nnzzzzzzzzzzznnxxxxxMxxxxxMxz++++++++++##zzzznnnxxxxxnxxMW@#@@MxxMMxxxx@###############@@Wxxxxxxxxxxx
;;;;;;;;;;;;;::::::::::::::::::::::::;;;;;;;;;###xzzzzzzzzz#zzzznnnxxxnnnxxxn#++++++++####zzznnnxxxxxxxxxMW@@@WxnnxxxxnxW@#############@@WMxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;ii###n#zzzz#######zzznnnnnnnnzzzz#++++##+####zzznnnnnxxxxxxxxW@@WMxnnnxxxMMxM@############@@@Wxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiii*##zz#zzzzz#########zzznnnnzzz##++++++######zznnnnnxxxxxxxxMW@MxxnnnxnnxMWxW############@@@@Mxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiii*##zzzznzzzz#########zzzznnzzz###+++######zzzznnnnnxxxxxxxxxWMxxxnnnxnnnxMx@############@@@WMxxxxxxxxxxxx
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiii*###zznnnnnnz########zzznnnzz####+++#####zzzznnnnxnxxxxxxxxxMxnnxxxxnnxnxxM@###########@@@WMxxxxxxxxxxxxx
::::::::::::::::::::::::::::::::;;;;;;iiii*++#z###zzxxMxnzzz######zzznnnzzz###++######zzznnnnnxxxxxxxxxxMxxnnnxxWxnnxMxW@#@@########@@@Wxxxxxxxxxxxxxx
::::::::::::::::::::::::::::::::::;i*+#znxMMMx#####znxM#+##zzzzzzzzzznnnnnzz##++#####zzzznnnxxxxxxxxxxxxxxnnnnxMxMxnnMxW@@@@#######@@@WMxMxxxxxxxxxxxx
:::,,,,,,,,,,,::::::,:::,,:::::;i+zxxMWWWWWWWxz####znxx**+++#znnnzzzzznnnnnzzz#+####zzzzznnxxxxxxxxxxxxxxxnnnnxxxMxnnMxW@@@@######@W@WMMMMxxxxxxxxMxxx
::::::,::,,,,,,,,,,,,,,,,::;i+zxMMWWWWWWW@@@@M######zxn+*+**+##znnnnnnnnnnnzzz#####zzzzznnnxxxxxxxxxxxxxxxnnnnxxxMMnnMx@@@#######@@@WWWWMMxxxxxxxxMxxx
:::::::::,,,,:,,:,::::::i+zxMWWWWWWW@@@@@@@@@Mz#####nxxz#+*i++++#znxnnnnznnzzzz###zzzznnnnnxxxxxxxxxxxxxxnnnnxxxxMMxxMx@@@######@@@WWWWWMMxxxxxxxxMxxx
::::::::::::::::::::;*#nMMWWWWWWWWW@@@@@@@@@@Mz#####nxWWWz*i+**+###nnnxnnnnzzzz###zzzznnnnxxxxxxxxxxxxxxxnnnnnnxxMMxxxM@@######@@@@WWWWWMMxxxxxxxxxxxx
:::::::::::::::::;*#xMWWWWWWWWWWWW@@@@@@@@@@@Mzzz##znnM@@@xzz*+#z+#zznMxxnnzzzz##zzzznnnnxnxxxxxxxxxxxxxnnnnnxxxxMMMMxW@#######@@@WWW@WWMMxxxxxxxxxxxx
,,,,,,,,,,,,,,,:i#xWWWWWWWWWWWWWWWWWWWWWWWWWWMzz###znnxW@@MMMxnxx#z##nxnxxnzzz###zzznnnnnxxxxxxxxxxxxxxxnxxnxMxxMMMMxxW########@@@@WW@@WMMxxxxxxxxxxxx
.............,*zxMWWWWWWWWWWWWWWWWWWWWWWWWWWWWnzz##znnnxWWMxxMMMMMMzzMnnMxnzzz##zzznnnnnnxxxxxxxxxxxxxxxxxxnnnnxxMMxxM@#########@#@@WWWWMMxxxxxxxxxxxx
`````````...;zxMWWWWWWWWWWWWWWMMWWWWWWWW@@@@@@nzz##znnznMMxxxxxxxxMMMWMWWnzz#z##zznnnnnnnxxxxxxxxxxxxxxxMxxnnnnxxMxxxW##########@#@@@@WWWMMMxxxxxxMMxx
.........,izxMWWMWWWWWWWWWWWMMWWWWW@@@@@#####@nzz##zzzzznnnnnnnnnxxxMMWMxzzzz###znnnxnnnnxxxxxxxxxxxxxMMxxxxxxxxxxnxW@#############@@@@@WWWWWWMMxxxxxx
......,:*zMMWWWMWWWMWWWWWWWWWWWW@@@###########nzz##zzzzzzznnnnzznnxxxxxnzzz#z##zznnxxnnnnnxxxxxxxxxxxxMWxxxxxxxxnnxW@###############@@@@@@WWWWWWWWMMMx
::::i+zxMMMMMWWMMWMMWWWWWWWWWW@@@#############xzz##zzzzz###znnnnnxxxxnnzzzz####znnnxxnnnnxxxxxxxxxMxxMMMxxnnnnnnnMW@################@@@@@WWWWWWWWWWWWM
:i+zxMMWWMWWMMWWMWWWWWWWWWWW@@@#######@@@@@@@@nzz##zzzz####zzznnnnnnnnznzz####znnxxxxnnnnxxxxxxxxMMxxMMWMxnnnnnxW@#################@@@@@@WWWWWWWWWWWWW
*zxMMMMWWWWWWMWWWWWWWWMWWWWW@@@@@@@@@@@@@@@@WWnzz##zzz#####zzznnnnnnnnzzzz####znxxxxxnnnnnxxxxxxMMMxMMMMMxnnnxM@###################@@@@@@WWWWWWWWWWWWW
xMMMMMMWWWWMWMMWWWWWWWWWWWW@@@@@@@@WW@WWWW@WWWnzz###zzzz####zzzzznnnnnzz#####zznxxxxnnnnnnxxxxxxMMMMMMMMMMMMW@@####################@@@@@@WWWWWWWWWWWWW
MMWWWWWWWWWMWWWWWWWWWWWWWWWWWW@@@@@WW@@WWWWWWWnnz####zzzzzzzzzzznnnnnzz###zzzznnxxxnnnnnxxxxxxxxMMMMMMMMMMW######################@@@@@@@WWWWWWWWWWWWWW
MWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWnzz#####zzzzzzzznnnnnzzzzzzzzzznxxxxxnnnnxxxxxxxxMMMxxMMMMMM@######################@@@@@@WWWWWWWWWWWWWWW
WWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWW@WWWWWW@WWWWWnz######zzzzzzzzznzzzzzzzzzzzznnxxxxxxnnnxxxxxMMMMMxxxxMxMMM@#####################@@@@@@@WWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWWWWWW@WWWWWnz########zzzzzzzzzzzzzzzzznnnnxxxxxxnnnxxxxxxxMMMxxxxxxxMMW######################@@@@@@WWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWW@@WWWWWnz########zz##z####zzzzzznnnnnxxxxxxnnnxxxxxxMMMMMxxxxxxxMW@######################@@@@@@@@@WWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@WWWWWWnzzzz###############zzznnnnnnnxxxxxxxxnxxxxxMMMMMxxxxxxxMM@@#####################@@@@@@@WWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@WWWWWWnzz#zz#zz###########zzznnnnnnxxxxxxxxxxxxxMMMMMMxxxxxxxMMW@@#####################@@@@@@@WWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@@WWW@WWxzzzz#####zz########zznnnnxxxxMMxxxxxxxxxMMMMMMxxxxxxxxMM@@@####################@@@@@@WWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@W@@@@WWW@@Wxzzz#######zz#zzzzzzznnnnxxxxxMMxxxxxxxMMMMMMMxxxxxxxxMMW@@@###################@@@WW@WWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@W@@@WWW@@WWMnzz########zzzzzzzzznnnxxxxMMMMxMxxxMMMMMMMMMxxxxxxxMMMW@@@###################@@WWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWW@W@@@@WWW@@@WWMnzz##++####zzzzzzzznnnxxxxMMMMMxxMMMMMMMMMMMMxxxxxxMMMx@#@@@################@@@@WWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@WW@@WWWWxnzz#######zzzzzznnnxxxxxMMMMMxMMMMMMMMMMMMxxxxxxMMMxxM##@@@@@@#############@@@@WWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@W@@@@@@@@WWWWMxnzzz####zzzzznznnxxxxxMMMMxxMMMMMMMMMMMMMxxxxxxMMMxnW#@@@@################@@@WWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WW@@@WW@@@WWWWWMnnnnzzzzzzzznnnnxxxxMMMMMMMMMMMMMMMMMMMMxMMMxxxMMxnnW#@#@@@##############@@WWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WW@@@WW@@@@WWWWWxnnnnnzzzzznnnxxxxxMMMMMMMMMMMMMMMMMMMMMxMMMMxMMxnnx@###@@@@@@##########@@WWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@WWW@@@@@WWWWWMxnnnnnnzznnxxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMMMMxnnnM@@#@@@@#@###########@@WWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WW@@WW@@@@@WWWWWWWMMxnnnnnnxxxxMMMMMMMMMMMMMMMMMMMMMMMMMMxMMMMxnnnnW#@@@@@@@#@#########@@@WWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WW@@WW@@@@@WWWWWWWWWWxxxxxxxxMMMMMWWMMMMMMMxMxMMMMMMMMMMMMMMMMxxnznx@#@@@@@###@######@@#@@@WWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWW@@W@WW@WWWWW@@@@@@WW@@@@@@WWWWWWWW@z#znxMMMMWWWWWMMMMMMMxMxxxxxxMMMxMMMMMMMxnzzznM@#@@@@@@##@#####@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWW@WWWWW@WWWWWW@@@@@@WW@@@@WWWWWWWWWWn+++zMWWWWWWMMMMMMMMMMMxMxMMMMMMMMxMMMMxnnzzznW#@#@@@@@@##@@##@@@@@@WWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWW@@WWWWWWWWWWWW@@@@@WW@@@@@@WWWWWWWWWx++**zxMMMMMMMMMMMMMMMMMMxMMMMMMMxMMMxxnnzzznx@#@@@@@@@@#@@@@@@@@@@@WWWMWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWW@@@WWWWWWWWWWWWW@@WW@@@@@@@WWWWWWWWWM+++*+#nMMMMMMMMMMMMMMMMMxMxMMMMxxMMxnnnzzzznM@#@@@@@@@@@@@@@@@@@W@WWWWWWWWWWWWWWWWWWWWWWWWWWWW@W
WWWWWWWWWWWWWW@@@@@@WWWWWWWWWWWWW@@WW@@@@@@@WWWWWWWWWW#++**+#nxMMMMMMMMMMMxMxMMMxMMxxMMMxnnzzzzzznW@@@@@@@@@@@@@@@@@WWW@WWWWWWWWWWWWWWWWWWWWWWWWWWW@@@
WWWWWWWWWWWWWW@WW@@@WWWWWWWWWWWWW@@W@@@@@@@@WWWWWWWWWWz++***+#nxxMMMMMMMMMMMMMMMxxxxMMxnnnzzzzzznxW@@@@@@@@@@@@@@@@@WWW@WWWWWWWWWWWWWWWWWWWWWWWWWW@@@W
WWWWWWWWWWWWWW@W@@@WWWWWWWWWWWWWW@WW@@@@@@@@WWWWWWWWWWn++****+znnxxxxMMMMMMxMMxxxxxMMxnzzzzzzzzznx@@@@@@@@@@@@@@@WWWWWW@@WWWWMWWWWWWWWWWWWWWWWWWW@@@@@
WWWWWWWWWWWWWWWW@@@WWWWWWW@WWWWWW@WWWW@@@@@@WWWWWWWWWWM++*****+znnnxxxxMMMxxxxxxxMMnnzzzzzzzzzznxM@@@@@@@@@@@@@@@WWWWWWW@WWWMWWWWWWWWWWWWWWWWWW@@@@@@@
WWWWWWWWWWWWWW@WW@@@@@WW@@@WWWWWWWWWWW@@@@WWWWWWWWWWWWW#+******+znnnnxxxxxxxxxxxMxnzzz#zzzzzzzznxWWW@W@WW@@@@@@WWWWWWWWW@WWWWWWWWWWWWWWWWWWWW@@W@@@@@@
WWWWWWWWWWWWWW@WW@@@@WWWWWWWWWWWWWWWWWWW@@@WWWWWWWWWWWWz++******+#nnnxxxxxxxxxxxnzzz####zzzzzzznxWWWWW@@W@@W@@WWWWWWWWWW@@WWWWWWWWWWWWWWWWWW@@@@@@@@@@