#################+;;;;;;;;;;;;;;;;;;;:;:;;;::::::::::::::::::::::::::::::::::::;i*#z#i;;::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,::,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::;ii*#xMxnz#+*;;;:::::,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::i+#zznxWWWWWMMnz##*;:::,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;:;::::::::::::::::::::::::::::::::;i+nxMMMMWW@WWWMMMMMxn#;:::,:::,,,,,:::,,,,,,,,,,,,,,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::;;*#nMWWWWWWWWWWWWWWWWWWWMzi:::;::,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::;i#nMW@@@@@@@@@@@@@WWWW@WWW@Mn##+*;:::,,,:::,,,,,,,,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;::;;:::::::::::::::::::::::::;*#xW@@@@@@@@@@@@@@@@@WWW@@@WWWWWWMn#i;:::::::,,,,,,,,,:,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;::::::::;:::::::::::::::::;;i#nMW@@@@@@@@@@@@@@@@@@WWWWWWWWWWW@@WWx#i::::,,:,:,,:,,,:,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;:::::;:::;:::::::::::::::::;+nMW@W@@@@@@@@@@@@@@@@@@WWWWWWWWW@W@@W@WMn+;:::::,:,,,,,,:,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;::;::;;;::::::::;;:::::;i+xW@@@@@@@@@@@@@@@@@@@@@WWWWW@@@@@WWWWWWWWWx+;::,,,:,,,,,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;:::::;;;::::::::;;::::;*#nW@@@@@@@@@@@@@@@@@@WW@WWWWWWWWW@@@@WWWW@WWWx+;:,:::,,,,,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;:;;;:::;;;;;::::::::;;:;;i+nMWW@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWW@@@WW@@@WWWMn*;::::,,,,,,,,:,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;::;;;::;::::::;;:;i#nMWW@@@@@@@@@@@@@@@@@@@@@@WWWWWWWWWWWWWWWWWWWWWWMMzi::::,,,,,,,,,,,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;:;;:::::::;::::::;:;;+xW@@@@@@@@@@@@@@@W@@@@@@W@@@@@WWWWWWWWWWWWWWWWWWWWWMz*;,:,,,,,,,,,,,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;:::::::;;;;:::::;+nW@@@@@@@@@@@@@@@@W@@@@@@W@@@@@@@WWWW@WWWWWWWWWWW@@WWMx+::,,,,,,,,,,,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;i+xW@@@@@@@@@@@@@@@@@W@@@@@WWW@@@@@@@WWW@@@WWWWWWWWWWWWWWWx+::,:,,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;:;;;::::::;:;;;;+nMW@@@@@@@@@@@@@@@@WWMW@@@@@WW@@@@@@@@WW@@@@WWWWMMWMMWWWWWWx*::::,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;:;;;::::::;;;;;+xW@@@@@@@@@@@@@@@@@@WWMWW@@@@WW@@@@@@@@WW@@@@WWWWWMMWMWW@WW@Wn*:::,,,,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;:::;;:;;;i+nW@@@@@@@@@@@@@@@@@@@WWMWW@@@WWWW@@@WW@@@@@@@@@WWWWWWWWWW@@@@@Wx+:::,:::,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;*zMW@@@@@@@@@@@@@@@W@@@WWWWW@@WWWWW@WWWW@@@@@@@@@@WW@WWWWWWW@@WWWMni::,::,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i#MWW@@@@@@@@@@@@@@@@@@@@WWWW@WW@WWW@WWW@@@@@@@@@@@@@@WWWWWWWWWW@@WMz;,:::,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*x@@@@@@@@@@@@@@@@@@@@@@@WWWWWWW@WWW@@@@@@@@@@@@@W@@@@@WWWWMWWWWWW@@M+:::::,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i+x@@@@@@@@@@@@@@@@@@@@WW@WWWWWWWWWW@@@@@@@@@@@@@@WWW@WWWWWWMWWWWWW@@Wni::,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*nW@@@WW@@@@@@@@@@@@@@@WW@W@W@W@@@W@@@@@@@@@@@@@@@@@WWW@@WWWMMWWWWW@@WM+;:,,,,,,,,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;i#M@@WWWW@@@@@@@@@@@@WWWWW@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWW@@Mz;:,,,,,::,,,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;*nW@@@@@W@@@@@@@@@WWWWWWWW@WW@@@@@@@@@@@@@@@@@@@@@@WW@@@@@W@@WWW@W@@@@@Wni::::,,,,,,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;;*nWWWWW@@@@@@@@@WWWWWWW@@@@WW@@@@@WWW@@@@@@@@@@@@@@@@@@@@@W@@@WW@WW@WWWWx+::::,,,,,,:::@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;i+xWWWWWWWW@@WWWWWWWWWWW@@@WWW@@@WWWWWWW@@@@@@@@@@@@@@@@@WWW@@@WWWW@@WWWWM#;::::::::,,,:@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;i*xWWWWWWWW@@WWWWWWWWWWW@W@WWW@WWWWWWWWWWWWWWWWW@@@@@@@@@WWW@W@WWWWWWWWWWWni:::::::::::,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;i+xWWWWWWWW@WWWWMMMWWWWW@W@WWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@WWWWWWWWWWWWWWWWx+:::::::::,,,@################
#################+;;;;;;;;;;;;;;;;;;;;;;;;;;;i#MWWMWWWWW@WWWMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@WWWWWWWWWWW@WWWWWMz;::::::::,,,@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;i*zMWWMWWWWW@WWWMMMxMWWWWWW@WWWWWWWWWWWWWWWWWWWWWWW@@@@@@@WWW@WWWWWW@@WWWWWMni::::,,,,,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;;*nMMWWWWWWW@@WWMMMxMWWWW@@WWWWWWWMMWWWWWWWWWWWWWWWW@@@@@@WWWWWWMWW@@@@WWWWWx*::::,,:::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;i#MMMWWWWWWWWWWWMMMxMMMWWWWWWWWWWWMMMWWWWWWWWWWWWWWWW@@@@@WWWWWWWMWW@@WWWWWWx+:::::,,::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;*zMMMWWWWWWWWWWMMMMMMMMMMWMMMWWWWWMMMMWWWWW@WWWWWWWWWWWW@@WWW@@WWWWW@@W@WWWWMz::::::::,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;*nMMMMMMWWWWWWWMxxMMMMxxxMMMMWWMWWMMMMMWWWWWWWWWWWWWWWWW@WWW@@@WWWWW@WW@WWMWMz;:::::::,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i+nMMMMMMWWWMMMMMMxxMMxnnnxxxMMMMMMMMMMMWWWWWWWWWWWWWWWW@@@WW@@WW@WWWWWWWWWMMMz;:::::::,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i*nMMMMMMWWMMMMMMMxxxnnzznnnnnxMMMMMMMxxMMWWWWWWWWMMMMWWWWWW@@WW@@WW@WWWWWWMMMzi:::::::,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;*zMMMMMMMMMMMxxMxxxnz#++####zznxxxMMxxxxMWWWWWWWWMMMMWWWWWW@@WW@@WW@WWWWWWMMMn+:::::::,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;*zMxxMxxMMMMMxxxxxxn#i;;iii**+#zznnnnnxxMMWWWWWWWMMMMMWWWWW@WWW@WW@@WWWWWWMxxn#;::::::,,:@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;*nMxxxxxMMMxxxnnxxxz*;:::::::;i*++#zzznnnxMMMMMMMMMMMMWWWW@@@@@@@@@@@@WWWMMxxn+;:::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;;*nxxxxxxMxxxxxnnnnn#i::,,,,,,,,::;i++#zzznxMMMMMMMMMMMWWWW@@@@@@@@@@@@WWWMxxxn+::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i*nxxxxxxMxxxnxnnnnz+i:,,,,,..,...,:;;*+###znxxMMMMMMMMWWWW@@@@@@@@@@@@WWWMxxnn*::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i*nxxxxxxxxxnnxxxnz#*;:,,,,..........,:i**+##znxMMMMMMWWWWWWWWWWWWWWWWWWWWxnxxz*::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i*nxxxxxxxxxnnxxxnz#*;:,,,,.......`.`..,:ii**#znxxMMMWWWWWWWWWWWWWWWWWWWWMxnnxzi::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i+nxxxxxxxxxxxxxxnz#*;:,,,,....````````..,,::i+#znxMMMMMWWWWWWWWWWWWWWWWWMxnnxzi::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i+nxxxxxxnnxnxxxnnz+*;:,,,,.....````````````.,i+zznxxMMMMWMWWWMMMWWMMMMMMMxnxxzi::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i+xxxxxxxnnxnxxxnn#+i;:,,,,.....````` ```````.,i+zznxxxxMMMMMMxxxMxnnzzzznxxxnzi::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i#xxxnxnnnxxnnxxnz#*i::,,,,.....`````        `.,;*#znxxxxxxxxnnzzzz+*****#xxxn+;::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;i#xxxxxnnnxnnnxnn#+*i;:,,,,,....`````     `` ```,:ii+znnnzz###+****;;;;;i#xxxn+:::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;ii#xxxxxxnnnnznxnz#+*i;:,,,,,.....`````   ```  ` `.,,;i***iiiii;:::::::;;i+xxxn+:::::::::::@################
##################;;;;;;;;;;;;;;;;;;;;;;;;;izMMxxMxnnznnnnnz#+*;;::,,,,......````````````````..,,,,,,,::,,..,,,:::;;+xxxz*:::::::::::@################
##################;;;;;;;;;i;;;;;;;;;;;;;;;izMMMMMxnzznnxnnz#+i;;::,,,,,.....```````````` ````...............,,:::;i#xxnzi:::::::::::@################
##################;;;;;;;;ii;;;;;ii;;;;;iii*nWMMMxxnnnxxxnz#+*i;:::,,,,,.....```````````` ``````.............,,:::;i#xxn#;:::::::::::@################
##################i;;;;;;;ii;;;;;ii;;;;;ii**zMMMxxnnnxxMxn#*ii;;:::,,,.........``````````````````...........,,,:::;i#xnz+;:::::::::::@################
##################i;;;iiiiiiiii;;;;;;i;ii**i*nMMxnnnxxMxz+ii;;:;::::,,..........`````````````````.........,,,,,::;;*zxnz*::::::::::::@################
##################i;;;;;iiiiiii;;;iiiiii***i;*xMxnnnxMMn+i;;;::;;:::,,,.........```````````````````..,,,,,,,,,:::;;*nxz#i::::::::::::@################
##################iii;;;iiiiiii;;iiiiiiii***;;zxxnnxMMx#i;;;;::;;:::,,,,.......`````````````````````...,,,,,,::::;i+nxz+;::::::::::::@################
##################iiiiiiiiiiiiiiii;;iiiii**i;;*nxxnxMMn+i;;;;;:;;:::,,,,....````````````````````````....,,,,,::::;i+nn#*;::::::::::::@################
##################i;iiiiiiiiiiiiiiiiiiiii**;;;;#nxxxMxz*;;;;;;;;;;:::,,,..```````````````````````````...,,,,:::::;i#xn#i:::::::::::::@################
##################ii;iiiiiiiiiiiiiiiiiiii*i;;;:*zxxMMx#i;;;;;;;;;;::,,,,,..```    ```````  ``````````...,,,,:::::;*#xn+;:::::::::::::@################
##################ii;iiiiiiiiiiiiiiiiiii**;::i;i#xMMMn+;;;;;;;;;;;;;;;:,,...``    ````````` ``````````...,,,,:::;i+zxz*;:::::::::::::@################
##################iiiiiiiiiiiiiiiiii;;ii*i:,:;;i#MMMMn*;;;;;;;ii*****ii:::,..``    ``  ```  `` ```````.....,,,::;i+nn#i::::::::::::::@################
##################iiiiiiiiiiiiiiiiii;;ii*;:::;ii+MMMxzi;;;;;;i*++##++**i;:::,.`   ``` `    `````````````...,,,::;i+nn+;::::::::::::::@################
##################iiiiiiiiiiiiiiiiii;i;ii;;i*++i+MMMx+;;;;;;ii+##zz###++iiii;,.``  `` `` ```````````````....,,::;i+nz*:::::::::::::::@################
##################;;iiiiiiiiiiiiii;;ii;ii;;***+++xMMn+;;;;:;i*+#####zzz####++i;,.```````````````````````...,,::;i*+xz*:::::::::::::::@################
##################;iiiiiiiiiiiiiiiiiii;i;:i*ii+++MMxz*;;;;;;;i*******++##zzzz#+*;,..```` ``````````````...,,:::;i*+x#i:::::::::::::::@################
##################iiiiiiiiiiiiiiiiiiiiiii;i*;i**+MMx#i;;;:::::;;iiii***+*++#znzz#*;,..````````````````...,::ii;;i*#n+;:::::::::::::::@################
##################iiiiiiiiiiiiiiiiiiiiiii;*+iii;+MMn+i;;::::,::ii*+#z#znnz##+#zzz#*;:,.```...```......,:;;ii*++**+zzi::::::::::::::::@################
##################iiiiiiiiiiiiiiiiiiiiiii;;*++i;#MMn*i;;:::,,,;i*+#z+i#nz#n#i+####*i;:,..........,,::;i*+####zzz#+z+;::::::::::::::::@################
##################iiiiiiiiiiiiiiiiiiiiii*i:i**+i#MMn*i;;::,,,,:i**++*;*nzz#;,i+#+**ii;,,......,:;i*++#znnnnnnnnnz#z*:::::::::::::::::@################
##################iiiiiiiiiiiiiiiiiiii*#n+i;;*+*zMMzii;;::,,,,:;;;i***i+z#:``;*#+*ii;;:.....,:;;+#zznnnnzzzzznnnz#zi:::::::::::::::::@################
##################iiiiiiiiiiiiiii***+zMWW#i::i+*zMxzii;;::,,,,,:::;;iiiii;,.:i++**ii::,....,:;i*#zzxxxnz++*++##zz+zi:::::::::::::::::@################
##################iiiiiiiiii***#znxxW@@@@z;,,:i*nMxzii;;::,,,,,,,::::;;iiiii*+++*iii:,,.`..,:i*##+zxnzxz+zz#++++++z;:::::::::::::::::@################
##################iiiiiii**+#xWW@@@@@#@@Wz:,,:;*nMx#iii;:::,,,,.,,,:::::;;ii***iiii;:,..``.,:i+++i*nz#z+;*nn#****+#;:::::::::::::::::@################
##################ii**#zznMWW@@@@@@@@#@@Wz:::,:*xMn#ii;;:::,,,....,,,:::;;ii**iiiii;:,.```.,;*+++*i#nz+;,i#z#*ii*#+;:::::::::::::::::@################
##################*zxMW@@@@@@@@@@@@@@#@@@Mi::::+xMn+iii;;:,,,.......,,,::;;iiii;;;;;::,...,:i***++**+*;:;*##+i;i*#*;:::::::::::::::::@################
#################xxW@@@@@@@@@@@###@@@@@@@W#;::;+xMz*iii;;:,,..........,,::;;i;;;;;;;;:,...,:i***+*****i**++*i;;i*zi;:::::::::::::::::@################
#################@@@@@@@@@@@@@####@@@@#@@@M+:,;+xMz*iii;::,,...`......,,::::;::::;;;::,..,:;i**********iiiii;;;i+#;;:::::::::::::::::@################
#################@@@@@@@@@@@######@@@@#@@@@M+;i+MMz*iii;;:,,...`......,,,,,,,,,::;;;:::,.,:;iiii***iiiiiii;;;;;i++;::::::::::::::::::@################
##################@@@@@@@#########@@@@@@@@@@M++zMM#*ii;;::,,......```........,::::::::,,,,:;iiiii;;i;;;;;;:::;;*#*;;:::::::::::::::::@################
##################@@@@@@##########@@@@@@@@@@W++zMx+*i;;;::,,......````....``.,::::::::,,.,:;ii;;;;;::::::::::;i*zi;;;;;::::::::::::::@################
##################@@@@@@@#########@@@@@@@@@@M++zMx#*ii;;::,,......````..````.,::::::::,..,:;;i;::;;::::::::::;i+z#ii;;;::::::::::::::@################
######################################@@@@@@M+*zMx#**i;;::,,......``````````.,::::::::,..,:;;;;::::::::,,,,,:;*#+nxn+;;::::::::::::::@################
######################################@@@@@@M**zMx+**i;;::,,,.....`````````..,,:::::::,..,:;;;;:,,:,,,,,,,,::;*z+MWWM#i;:;:::::::::::@################
######################################@@@@@@M**zMn+**i;;::,,,,....````````...,:::::::,,..,:;;;;:,,,,,,,,,,:::i#xxW@@@Wn+;;:::::::::::@################
#####################################@@@@@@@M+*#Mn++*i;;:,,,,,......```.....,:;i;;:::,,..,:;;;;:,,,,,,,,,:::;*zWWW@@@@@M#i;;:::::::::@################
##################################@@@@@@@@@@M+*+xz++*ii;:,,,,,....`.......,,:;ii;;:::,,..,:;i;::,,,,,,,,,::;;*xWW@@@@@@@Wx#i;::::::::@################
##################################@@@@@@@@@@W+i*nz++*i;;:,,,,,...``......,,,;i*i;;::,,...,:;i;:,,,,,,,,,,::;i+MW@@@@@@@@@@Wx#i:::::::@################
########################@@###########@@@@@@@W+i*nz+**i;;::,,,,...``.....,,,:;**i;;::,,.`.,:;i;:,,,,,.,,:,::;*zW@@@@@@@@@@@@@Mz*;:::::@################
#######################@@@@##########@@@@@@@W+i*zn+**ii;;:,,,,...```....,,,:;*ii;;::,,.`.,:;i;:,,,,,.,,:,:;;*nW@@@@@@@@@@@@@@Wx#i::::@################
#####################@@@@@@@########@###@@@@W+i*#x+*iii;::,,,,,........,,,,,;*ii;;::,,.`.,:;i;:,,,,,.,,:::;i+MW@@@@@@@@@@@@@@@@Wz*;::@################
####################@@@@@@@####@@@##@#@@@@@@W#ii#x+****i;::,,,,,..........,,;i**i;::,,...,:;i;:,,,,,.,,::;;inW@@@@@@@@@@@@@@@@@@@x+;:@################
##################@@@@@@@@@#@@@@@@###@@@@@@@@zii+x#**iii;;::,,,,,.........,:;i*+*i;:,,..,,;ii:,,,,,,,,,::;;+M@@@@@@@@@@@@@@@@@@@@@M#*@################
##################@@@@@@@@@#@@@@@@###@@@@@@@@xi;*nn+*iii;;::::,,,,,...,,,,,:;;i***i;:,,,,:;i;:,,,,,,,,,::;izW@@@@@@@@@@@@@@@@@@@@@@Wx#################
##################@@@@@@@@@@#########@@@@@@@@Mi;i#x+*iiii;:::::,,,,,,,:::;;i;i*****i;::::;i;:,,,,,,,,,::;;*xW@@@@@@@@@@@@@@@@@@@@@@@@#################
##################@@@@@@@@@@######@@@@@@@@@@@M+;i+xz***ii;;::::,,:::;iii****++#+***ii;;;ii*;::,,,,,,,:::;i#M@@@@@@@@@@@@@@@@@@@@@@@@@#################
#################@@@@@@@@@@@######@@@@@@@@@@@W#;;*nx+**i;;;:;:::::;i+###z###znnz+*+*ii**++*i;::,,,,,,::;;*nW@@@@@@@WW@@@@@@@@@@@@@@@@#################
#################@@@@@@@@@@#######@@@@@@@@@@@Wni;*zxz+*ii;;;;;:,:;*+#zzznnzzxxxnz##*i*++###+*ii;:,,,:::;i#M@@@@@@@@@@W@@@@@@@@@@@@@@@#################
#################@@@@@@@@@@####@@@@@@@@@@@@@@@x*;i+nn+*iiii;;;::;i#zznzzzzzznxxnzzz#+#zzznnz###*;:::::;;*zW@@@@@@@@@@WWW@@@@@@@@@@@@@#################
#################@@@@@@@@#@###@@@@@@@@@@@@@@@@M+ii*#xz**iii;;;:;i+nnzz#**+**+#z##nnzzznnnnnnnzn#i::::;;i#M@@@@@@@@@@@WWW@@@@@@@@@@@@@#################
#################@@@@@@@@#@@##@@@@@@@@@@@@@@@@Wzi;i+nx+*iii;;;;i+znzz#*i;;:::;i;i##+#zzzznnnnnxz+;::;;i+n@@@@@@@@@@@@@@@WW@@@@@@@@@@@#################
#################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Wn*ii*#xz+**i;;;;+zzz#+***i;:::::::;;;;i*++++zznxnzi;;;i*#M@@@@@@@@@@@@@@@@@WWWW@@@@@@@#################
#################@@@@@@@##@@@@@@@@@@@@@@@@@@@@@M#ii*+nx#**ii;;i+zzz+i;ii*++++++*i;:::,;;;;i*#nnnz*;;i*+x@@@@@@@@@@@@@@@@@@WWWW@@@@@@@#################
#################@@@@@@@##@@@@@@@@@@@@@@@@@@@@@Wz*i*+#xz+**iii*#nnz+i;;:i*++++####*iii**ii;i+znnn*ii*+nW@@@@@@@@@@@@@@@@@@WW@@WWWW@@@#################
#################@@@@@@###@@@@#@@@@@@@@@@@@@@@@@x+***+zx#+*iii+nxxz#*;::;;i*i**++####zzz#++*+#znz*ii*zW@@@@@@@@@@@@@@@@@@@@@@@@@@WW@@#################
#################@@@@@@##@@@@@#@@@@@@@@@@@@@@@@@x#+**+#xx#****#xMxnz*i;::::;iiiii**+++++###+*+#zz*i*#M@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@#################
#################@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@Mz+**++zxn+**+zMMMxz+*i;;;;;;;;;;iiiii**++*i*+zz#**#xW@@@@@@@@@@@@@@@@@@@@@@@@@@@WWW@#################
#################@@WW@@##@@@W@@@@@###@@@@@@@@@@@Wx#+*++#nMz+*+nMMxnn#+*iiiiiiiiiiii;;i**iiii*#nnz+#nW@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWW@#################
#################@@WW@@##@@@WW@@@@###@@@@@@@@@@@@Mz#++++zxMz+#xMMxxnnz#****+++++#+**iiiiiii*+zxnz#nW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW@#################
#################@WWW@@#@@@@WW@@@@###@@@@@@@@@@@@Wn#++++##xxzzMMMxxxMxz#+++znnnnnnzz+**iii*#nnxxznW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################
#################@WW@@@#@@@@@@@@###@#@@@@@@@@@@@@Wxz#+++++zxxxMWMMMMMxn#++#znxxxxxxxnz#+++#nxMxnnW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################
#################@WWW@##@@@@W@@@@@@@@@@@@@@@@@@@@@Mn##++++#zMWWWMMMMxnn####znnxMMMMxnn###zzxMMMxW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################
#################@WWW@##@@@WW@W@@@#@@@@@@@@@@@@@@@Wnz#+++++#nMWWMMMxnnnznz##znxxMMMxnnzznxxMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#################
#################@WWW@##@@@@@@W@@@@#@@@@@@@@@@@@@@Wxz#++++++zxWWWMxnznnnz###znnnxMMxnnzznMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWW@@@@@@@#################
#################@WW@@@#@@@@@@W@@@#@##@@@@@@@@@@@@@Mn##+++++#zxWWWxnnxxxz##zzzzzzxxxxxnnxMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWW@@@@@@@#################
#################@WW@@@@@@@@@@W@W@@#@@@@@@#@@@@@@@@Wn#++***+++#xWWMMxxnxnzzzzzzzznxxxxxxMWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWW@@@@@#################
#################@WWW@##@W@@@@W@W@@@@@@@@@@@@@@@@@@@x#++*****++#nMWMMxnxxnnnnnzznnxMxxxMMWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWWW@@@@#################
#################WWW@@#@@WWW@@@@W@@@@@@@@@@@@@@@@@@@M#+***i****++zxWMxxxxxxxxnznnxMMxxxMMWW@@@@@@@@@@@@@@@@@@@@@#@@@@@@@WWWW@@WWWW@@@#################
#################@WW@@#@W@WW@@@@W@@@##@@@@@@@@@@@@@@M#+**iii*****+zxWWMMMMMMxxnxxMMMMxMMWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWW@@@@WMWW@@#################
#################WWW@@@@WW@@@@@WW@@@@@#@@@@@@@@@@@@@M#+*iiiiii****+#nMWMMWMMMMMMMMMWMMWWWW@@@@@@@@@@@@@@@@@@@W@@@@@@@@@@WW@@@@@WWMW@@#################
#################WWW@@@@WW@@@@@WW@@@@@@@@@@@@@@@@@@@Mz#**iiiiii*****+znxMWWWWWWWWWWWWMWMW@@@@@@@@@@@@@@@@@@@WWW@@@@@@@@@WW@@@@@WWMWW@#################
#################WWW@@@@WWW@@@@WW@@@@@@@@@@@@@@@@@@@Mz#+*iiiiiii****+++#znxMWWWWMWWWWMMMM@@@@@@@@@@@@@@@@@@@WWW@@@@@@@@WWW@@@@@@WWMW@#################
#################WWW@@@@@@@@@@@WWW@@@@@@@@@@@@@@@@@@Wxz#+*iiiii****+++++##zznxxnnxMWWMxxM@@@@@@@@@@@@@@@@@W@WWW@@##@@@@WWW@@@@@@WWMWW#################
#################WWW@@@@@@@@@@@WWW@@@@@@@@@@@@@@@@@@WMxn#+*******++++#####zzzzznnxWWMxxxW@@@@@@@@@@@@@@@@WW@WW@@@##@@@@WW@@@@@@@@WWWW#################
#################WWW@@@@@W@@@@@WWW@@@@@@@@@@@@@@@@@@WMxxnz#++++++++####zzzznnnxxMWWMxxxxW@@@@@@@@@@@@@@@@WW@WW@@@##@@@@WW@@@@@@@@@WWW#################
#################WWW@@@@@WWW@@@WWW@@@@@@@@@@@@@@@@@@@WMxxxnzz#####zzzzznnnnxxMMWWWMxxnxxW@@@@@@@@@@@@@@@@WW@WWW@@##@@@WWW@@@@@@@@@@WW#################
#################WW@@@@@@WWW@@@@WW@@@@@@@@@@@@@@@@@@@WMxxxxxnnnnnnnnxxxxxxMMMWWWWxxnnnxM@@@@@@@@@@@@@@@@@WW@WWWW@##@@@WWW@@@@@@@@@@WW#################
#################WW@@@@@@@WWW@@@WW@@@@@@@@@@@@@@@@@@@WMxxxxMxMxxxxxMMMMMMWWWWWWMxnnnnnnW@@@@@@@@@@@@@@@@WWWWWWWW@##@@@WMW@@@@@@@@@@WW#################
#################WW@@@@@@@W@W@@@WWWWW@@@@@@@@@@@@@@@@WMxxxxxxMMMMMMMWWWWWW@WWMxnnnnnnnnW@@@@@@@@@@@@@@WWWWWWWW@@@@#@@@WMW@@@@@@@#@@@W#################
#################WW@@@@@@WWWW@@@WW@WW@@@@@@@#@@@@@@@@WMxxxnnnxxMMWWWWWWWWWMMxnnnnnnnzzx@@@@@@@@@@@@@@@WWWMWWW@@@@@#@@WMMW@@@@@@@@@@@W#################
#################WW@@@@@@W@WW@WWW@@WWW@@@@@@@@@@@@@@@WMxxnnnnnnnxxxxMMMxxnnnnzzzzzzzzzM@@@@@@@@@@@@@@@WWWMWWW@@@@@@@@WMMW@@@@@@@@#@@W#################
#################@W@@@@@@@WWW@@WW@WWWW@@@@@@@@@@@@@@@WMxxnnnnnnnnnnnnnnnnnnnzzzzzzz#znW@@@@@@@@@@@@@@@WWMMWWW@@@@@@@@WMWW@@@@@@@@##@@#################
#################@W@@@@@@@WWW@@WWWWWW@W@@@@@@@@@@@@@WMMxxnnnnnnnnnnnnnnzzzzzzzzzz###zxW@@@@@@@@@@@@@@WWWMMMW@@@@@@@@@WMWW@@@@@@@@##@@#################
#################@W@@@@@@@WWW@@@WWWWWWW@@@@@@@@@@@@@WMxxxnnnnnnzzzzzzzzzzzzzzzz#####zMW@@@@@@@@@@@@@@WWWMMMW@@@@@@@@@WMWW@@@@@@@@##@@#################
#################@@@@@@@@@WWW@WWWWWWWWWW@@@@W@@@@@@@Wxxxxnnzzzzzzzzzzzzzzzzzz#######nMW@@@@@@@@@@@@@@WWWMMWW@@@@@@@@@WMWW@@@@@@@@##@@#################
#################@@@@#@@@@WWW@W@WWWWWWWWW@@#@W@@@@@@Mxxnnnnnzzzzzzzzzzzzzz#########zxM@@@@@@@@@W@@@@WMWMMWWWW@@@@@@@@WMWW@@@@@@@@##@@#################
#################@@@@#@@@@WWW@WW@W@@WWWWW@@#@W@@@@@@Mxnnnnnnnzz####################zxM@@@@@@@@@@@@@WWMWMMMW@W@@@@@@@WWMW@@@@@@@@@##@@#################
#################@@@@#@@@@WWW@WWWW@@WWWWW@@#@@@@@@@@Mnnnnnnnnnnzz##################nxM@@@@@@@@@@@@@WMWWMMMW@@@@@@@@@WMMW@@@@@@@@###@@#################
#################@@@@@@@@WWWW@WWWWWWWWWWWW@@@@@@@@@@Mnnnzzzzzznnzzzzzzz###zzzz####znxW@@@@@@@@@@@@@MMWMMWMW@@@@@@@@@WMMWW@@@@@@@###@W#################
#################@@@@#@@@WWWW@WWWWWWWWWWWW@@@@@@@@@@Mnnnzzzzzzzzznnnzzzzzzzzzz####znM@@@@@@@@@@@@@WMMMMWWMW@@@@@@@@@WMMW@@@@@@@@###@W#################
#################@@@@#@@@WWWW@@WWWWWWWWWMW@@@@@@@@@@Wnzzzz###zzzzzzzzzzzzzz#######znM@@@@@@@W@@@@WWWWWWWWMW@@@@@@@@@WMMW@@@WW@@@###@W#################
#################@@@@#@@WWWWWW@WWWWWWWWWWMW@#@@@@@@@Wxzzzz########zzzzzz##########nnW@@@@@@@@@@@@WWWWWWWWWW@@@#@@@@WWMMW@@@@@@@@###@W#################
#################@@@@#@@WW@WWW@@WWWWWWWWWWW@@@@@@@@@@Mzzzzz#######nnnnnz#########zxnWW@@@@@@@@@@WWWMWMMWWW@@@@#@@@@WMMMW@@@@@@@@###@W#################
#################@@@@#@@@@@@W@@@WWWWWWWWWMWW@@@@@@@@@Mn#zzz#######xMMMMn##znnzz#zxxxW@@@@WWW@@@@WWWMMMMWW@@@@@#@@@@WMMMW@@@@@@@@###@W#################
#################@@@##@@@@@@W@@@WWWWWWWWMMWW@#@@@@@@WWxz#zz######zMMMMMx##zMMMMxxxxMW@@@@@@@@@@@WWWWWWWWW@@@@@@@@@WWMMW@@@@@@@@###@@W#################
#################@@@##@@@@@@WW@@WWWWWWWWMMWW@@@@@@@@WWWx#########nWWMxMMz#zxMMMMMMMMW@@@@@@@@@@WWWMMWWWWW@@@@@@@@@WWMMW@@@#@@@@@##@@W#################
#################@@@##@@@@@@W@@@WWWWWWWWMMWW@@@@@@@@WWWMz########xWMnxMMz#xMxnMMMMMMW@@@@@@@@@@WWWMMWWWWW@@@@@@@@@WWMMW@@##@@@@@##@@W#################
#################@@@#@@@@@@@@@@@WWWWW@WWWWWW@W@@@@@@WMWWx#######zMWMzMWMz#xMz#MxxxxMW@@@@@W@@@WWWMMWWWWWW@@@@@@@@@WWMW@@@###@@@###@@W#################
#################@@@#@@@@@@@@@@WWWWWW@WWWWWW@W@@@@@@WMMWx#+#####zMWxzMMxz#z##zxnnnxMW@@@@@W@@@WWMMWWWWWWW@@@@@@@@@WWMW@@@###@@@###@@W#################