,,,,,,,,,,,,,,,,,,,.,.................................................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,..............................................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,.............................................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,.............................................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........................................................,:::::::,,....................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,.............,..............................................,;i+i;;i*+##+*;:,,..............................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,...................................................,;++*+###########++*:.,...........................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..................................................,*#zznnzzznnnnnnz######+;,,.........................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,................................................:znxxxxxxxxxxxxxxxxz####+#*:,,.......................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,.......................................,;+*zznnnzzz######zxxxnz+i*+++*,.......................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,....,.,,..............................,:;;;+zzzzzzz#+**ii*zznnz#z*i*++i,,.....................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,.............................,:i+znxzznnnzzzznz+i#zzzzz##z#ii*+;,.....................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,...,,,...................,;#znxxxzzzzzz#**+#znzzzzzzz###z+i#+;,....................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,..,,,,.................,;#nxxxxnzzz#+*iiiiii*nxnzzz#i*##z#*#+;....................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,.,,,,,...............,:#zz##z##z+*iiiiiiiii+xxMxzzz+ii+z#;i++:,..................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..............,,*##i;*zz*iiiiiiiiii**#nxMMxnzzz+i*+ii;+*,..................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,.............i##i;i***iiiiiii***i*znznxMMMxnnnz*inz*;*;,.................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.........,,:###;iiiiii#zzzz#+++#nznzznMMMMMxnnn#xxxzi*,.................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.......,,,znzz#+**++nnnnnnnnnzzzznzzznxxMMMMxxnznxxz*;,...........................,,,.,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.......,,*nz#zznznnnnnxxxnznnnzznnnnn*#zxnnnxxnz#znn#*............................,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,:z#zznxxznxxxxMMMMxxnnnnnznn*:;#zzzznxn+ii+z#+,,.................,,.......,,,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,*z#znxxxnnxMMMMMMxMMMnnzzzzziii*#nzznnzziii*##:,.................,,.,....,..,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,,z#znxnzxxxMMxxxMxznxMxzzzzznzz#+*#zzzzzzzii;+#i,,...........,...,,,...,,,,..,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.,,:nzzxzii#xxMx**zxz+*#xxzzzzzzzzzzz**#nzzzz#iii#+,,........,,,,..,,,...,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,inzz+iiiiznnnnnnzzz#zznnnzzzzzzzzzz+i*#zzzzii;#z:,.......,,,,,..,,....,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*xzzn#++*#zzzzzzzzz#*##+++#zzzzzzzz#+i*+#zzi+z#z#,,........,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+xxMMMMMMMMxxz#zzzz+******+zzzzzzzzzz**+i*i+zzzzn;,....,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:#xMMnznnxxMMMMMMMxz#+*****+zzzzzzzzzz**#####zzz#zi,,,,..,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+xMnnnnxnnnxxxxxxxxxxxnz#+zzzzzzzzzzz#*#######z##;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+xxnnnn*#nxnnnnnxxxxxnzzxxxxnzzzzzzzxnn#####+#z#z,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,i+xxnnnx*i*+###znxxxxxxxMxxxxxMMMxnzznxxnzzz#####zz,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ixMMnnnnii++###zzznnnnnxxxxxxxxxxxxMMxxxnzzzz##+*n+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;xMxnnxz;*++###zzznnnnnxxxxxxxxnxxxxnxMMxnz#zz#+*ni,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#xMxnnx#i*++###zzznnnnnxxxxxxnnxnzzzznxxxMMMxxn+nzi.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,nxMxnnn*i*++###zzzznnnnxxxxnnnnnzz#zn#znxnnnMMMxxi*.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,nzxxnn#ii*++###zzzznnnnnnnnnnnnnzzz###z##xnnnMMxx:i.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,zzxxnni;i*++###zzznnnnnnnnnnnnnzzzz###+**xnnnxMxz,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:zznnnzii**+###zzzznnnnnnnnnnnnzzzz###++**xnnnxMx;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;zznxnn*i*++###zzzznnnnnnnnnnnnnzzz###+++*xnnnxMx::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,inznxxnni*++####zzznnnnxxxnnnnnnzzz###+++*xnnnxMxxz,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#nnxMxn+i++###zzznnnxxxxxxnnnnnzzz###++++xnnnMMxxi,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+nnnxMWxx+*+###zzznnnxxxxxxnnnnnzzz###+++#xnnxMMxz,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+nnnxMMMnx**##zzznnxxxxMxxxxnnnnzzz###+++zxnnxMxx#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*nnnnxxnzxx+*#zzznxMMMMMMMxxnnnnzzz###++*xxnnxxnnz,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;#nnnx+*+xxxxnznxxMMxnnxxMxxnnnzzzz###++nxnnnxnn##,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:znnnx+*+nxxxxMxMMMxnzzznxMxxnnnzzz###+nxxnnxxnnn+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
::::::::::::::::::::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:znnnx++++znxxxxxxnz####znMMxnnnzzzz##xxnnxMMxnzz;,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,:
************+**+*+***+*++*+*+++++++++++++++++++++++++++++++#++##+##+zxxxMz++++##znnzz##++++#znMxxnnzzzzxMxxnMMMxxn#n####+##+##########################
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#xxxMz+*+++######++++++++#nxxxxxxMMxxnznMMxxnz#+,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+nMxMz+**++++##+++++++++++##nxxxxxxxx###nMxxnnnn:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,inxxxMx++*+++++++++++++++++++##znxxxxx#++#xMxnnzz#,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:#xxxxxxz##+++++###++++++++++++########+++**nxxnnzn:,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+nxxnxMMn++++++####+++++++++++++++###+++++**+zxxnzn*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,innxxxxMMMn#****++++++++###++++++++++++++**++*+xxxnzz,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:#nxxxxxxMMM#x++*+++++++####++++++++++++++++**++zxxnz#;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;nxxxxxxMMMMx#Mn+++++#######++++++++++++++++***+zMxxnz*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*nxxMMMMMMMMMnzMn#++########+++++++++++++++++++++nMMxxni,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+nxxMMMMMMMMMMz#x#++++++++#+++++++++++++++++++*z#zxMMxn*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:znnxxMMMMxnxxMMz#xz++++++++++++++++++++++++++++*##nnMxn+,,,,,,,,,,,,,:,,,,,,,,,,,,,,,:,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:znnxxMxxzznnxxMWz+nM+*+++++++++++++++++++++++++++*+#zxnz,,,,,,,,:::::,,,,,,,,,,::,,,,:,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;znnnxnzz##nnnnxMWn##nx++++++++++++++++++++++++++++++#xxMMi,,,,,,:::::::,,,,,,,,,::,:,:,,:,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;#zzzznnzz##xxxxMMWx+#zx##+++++++++++#++++++++++++++#zxnMMMx:,,,::::::,:,,,,,,,,::::::,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,i;i+##nxxxxnz##xMMMMMWx##zxn#z#+++++++++##+++++++#++++#zxMxWMMMz,:::,:::,,,,,,,,,,,,,:,::,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++#znxnzzzznnxMMMMxz#znxz+##+++++++#######++*+###++nxxMMMMMx*:::,:::,,,,,,,,::,:::,:,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;###+#####nn#znxxxxMMWWxxnznnMz++++++++++#######+++*+++zMMMMWMMMxn:::,,::,,,,,,,,::::,:,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+#++#+#######nxxxxMMMWWxxxnnnxMn###################++#nMMMMWWMMMMxi::,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+z##########znxxxMMMMWWMMMxnxxxMMz###################nxxnxMMMMMMxx+::,,,,,,,::::::::::::::,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;*+#zzzz##++znnn#++###z#nnxxxMMMMWWMMMMMnxMMMMzz###############zxxxzzMWMMMMMMxz,:,,,,::::::::::::::::::,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:i#nxxxxxxxxxxxn##zzzzxxz#+#z#zzznnxMMWWMMMMMMxxMMxMnzzzzzz#######znxxnzzxWWMMMMMMxn:,,,,::::::::::::::::::,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,;#nxnnnnnnnnnnnnxnn#++#nxnxxnz###znnxxxxxMMMMMWMMMMMxxMMxxnzzzzzznnxxxxnznMWWWWMMMMMMn;,,::::::::::::::::::::,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,;#nnxxnnnnnnnnnnnnnnnxnnxxxxxxxnnz####znxnnxMMMMMMMMMMxnxxxMMMWMMMMWMMxxnnxMWWWWWMMMMMxni:::,:::::::::::::::::,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,:#nnnxxnnnnxnnnnnnnnnnnxxxxxxxxxxxnnnz##z##nxxMMMMMMMMMMMMMMMMWWWWMMMMxxxxMMMWWWWWWMxMMMxn*::,,::::::::::::::::,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,innnnnxnnnnnnnxxxxxnnnnnnxxxxxnnnxxxnnnn##zzzznxMMMMMMMMMMWWWWWWWWWWWWWMMWWWWWWWWWWWWxxxxzn*:,,::::::::::::::::,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,+nnnnnnnnnnnnnnnnnnxnnnnnnnxxxxxxnxxxxnnnnz++#nnxxMMMMMMMMMWWWWWWWWWWWWMMWWWWWMMMMMMMMxxxnnz*,,:::::::::::::::,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,+nnnnnnnnxnnnnnnnnnnnnnnnnnxnnxnnnnnnnnxnnxnnz++zznxMMMMMMMMWWWWWWWWWWWWWWWWMMWMMMMxMMMxnn#z#*,:::::::::::::::,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,#nnnnnnnnnxnnnnnnnxxnnnnxxxxxnnnxnnnnnnnnnnnxMxn#*#nnxxMMMMMxWMMMWWWWWWWWWWWMMxMMMMMMxMMxnnz##+*::::::::::::::,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,#nnnnnnnnnnxnnnxnnxxnnnxnnxxxxxxxxnnnnnnnnnnnnMMMxxnzznnxMMMMMMMMMWWWWWWWMWWWMMMMMxxxxxxxxnnz#z#xn;:::::::::,,,,,,,,,,,,,,,:::::::,,
;;;:::;:;;;;;;;;;znnnnxnnnnnnnnzznnnxxnnxnnxxxxxxxxnnnnnnnnnnnnnxMxxxxxnznnxMMMMMMMMWWWWMMMMMMMMMMMMMxxxxxxxnzz##+nxn+iiiii;;;;;;;;;;:::;;:;;;:;;;;;;;
,,,,,,,,,,,,,,,,+nnxnnnxnnnnnnnnnnnnnnnnnnnxxxxnnnnnnnnnnnnnnnnnnxxxxxxxxzznMWWWWMMWWWMMMMMMxxMMxMMMMxxxMMxnnz###+Mxxn;;:::,,,,,,,,,,,,,,,,,,,::,:::::
,,,,,,,,,,,,,,,innnxnnnnnznnnnnnnxnnnnnnnnxxxxnnnnznnzznnnnnnnnnnzxxxxxxxxnnnWWWWMMMMMMMxxxxxxxxMMMMxMxxnn#nzznz++nMMxzz+:,,,,,,,,,,,,,,,,::,,::,:::::
,,,,,,,,,,,,,,:nnnnnnnnnnzznnxxxxnnnnnznnxxnnnnnnnznnnnnnnnnnnnnnnnxxxxxxxxxxxMMxxxxxMMMx#*+zxMMMxxxxxzxzz*nzznxzzMMMxnz#+*:,,,,,,,,,,,,,,::::::::::::
;;;;;;;;;;;;i;+nnnnnnnnnnnnnnnxxxxxxxxnnxnnnnnzxxnnnnnznnnnnnnnnnnnxxnnxxxxxMxxzznnnxxxxnMxxnxxxMMMMxxxnz##z##zxzzMMMMxz####+:,,,,,,,,,,,,::::::::::::
,,,,,,,,,,,,,;nnnnnnnnnnnnnnnxxxxxxxxznnnnnnnnxxxnnzzznnznnnnnnnnnnnxnnnxxnnxzzzzznnnnnzzznnnxxMMxxzzz###zzznnzz+xMMMxxzz#####i,,,,,,,,,,,:::::::::;;:
,,,,,,,,,,,,,#nnnnnnnnnnnnnxxxxxxxxxxxxxxnnxxnxxxnnnznnnnnnnnnnnnnnnnnnnnxnnzzzzzzzznnzzzzzzzzznxxMxxxnxnxxxxxn#nMMMMxnzzz#####+,,,,,,,,,::::::::;:;;:
,,,,,,,,,,,,innnnnxnnnnnnxnxxxnxxxxxxxxxxnxxnnxnnnnnzxxnnnznnnnnnnnn#xnnnnnzzzzzzzzzzzzzzzzzzzzzzznnnzznzzznnz#zMMMMMxnzzzz###z#+:,,,,,:::::::;::;:;;;
,,,,,,,,,,,,#nnxnnnnnnnnxxnxxxxxxxxxx#xxnxxx#nxnnnzz#xxxnznnnnnnnnnnznnnnnzzzzzzzzzzzzzzzzzzzzzzznznnznnzxxnxnnMMMMMMxnnzzz###zz#+i,,,:::::::;;;;;;;;;
,,,,,,,,,,,innxnnnnnnnnnxnxxxxxxxxxxxnnnnnxxnnnnnnnxxxxxnzznnnnnnnnnnznnznnnnnnzzzzzzzznnnnnnnxxxxxxnnnxWWWWWMMMMMMMMxnnzz##zzzz##++iiiiiiiii*iiiiiiii
,,,,,,,,,,*znnnnnxnnnnnxxxxxxxxxxxxxxxxxxxxxnxnnnznnzxxxnnnnnnnnnnnnnzxnnxnnnnxxxxxxxxxxxxxxxxMxxxxxnnnxWWWWWWMMMMMMMxnnzzzzzzzzz##+*::::::::::;;;;;;;
,,,,,,,,izznxnnnnnnnnnnxxxxxxxxxxxxxxnnnxxxxzxxnxnnnxxxxnnzznnxxxnnnxnxnnnnnnnxnxxxxxnnnnxxxxxxxMWWMMxnMWWWWWWMMMMMMMxnxnnzzzzzzzzznnz;;::::::::::::;;
,,,,,,;zxxznnnnnnnnnnxnxxxxxxxxxxxxxxnzxxxxxnxnnxnnznxxxnznzxnnnnxnnxxzznnnnnnnzxnnnnnnnxxxxxxMMWWWMMMxMWWWWWMMMMxMMMxMMMxxnnnxMMMMxxxn::::::::,,::::,
,,,,,*xxxxznnnnnnxxnxxxxxxxxxxxxxxnnnxxxxxnxnxznxnznnnxnnznxnnnnnxxnnxznnnnnnnzznnnnnnnnxxxxxMWWWWWMMMWWWWWWWWWWWWWMMMMMMxMMMMMMMMxxxxx#,,::,,,,,,,,,,
,,,,ixxxMnnnnnnnnxxnxxxxxxxxxxxxxnnzxxxxxxxxxnxxxnnznnzxz#znnnnnnxxnnxzxnnznnnznnnnnnnnxxMMWWWWWWWMMMMWWWWWWWWWWWWWMMMMMMMMMMMMMMxnxxnxx::,,,,,,,,,,,,
,,,;nxxxxzxnnnnnxxnnxxxxxxxxxxxxxxnnxxxxxnxxxnnxxnzznxxz#znnzxnnnxxnxxzxnnznznzxnnnxMMMMWWWWWWWMMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMxnnxxxxxn;,,,,,,,,,,,,,
,,,znxxxMznnnnnnxxnnxxxxxxxxxxxxxxnzxxxxxxxxxxnxxxzzxxxnnzznznnnxxnxxxnxnnnnnzznnnnMMMMMWWWWWWMMMMMMMMWWWWWWWWWWWMMMWWWMMMMMMMMMMMxxxxxn+,,,,,,,,,,,,:
,,+xxxMMMznnnnnnxnnxxxxxxxxxxxxxxxxxxxxnnnxxxxnzxnzzznxn#nnxnnnxxnnxxxnxnnnnnnnxnnnMMMMWWWWWMMMMMMMMMMWWWWWWWWWWWMMMWWWMMMMMMMMMMMxxxxxxni,,,,,,,,,,,:
,ixxxMMMnznnnnnxxnxxxxxxxxxxxxxxxnzzzxnnnxxxxxn#nxx#nzxz#zzn#znnxnnxxxxnnnnnnnnxnnnMMMMWWWMMMMxMMMMMMMWWWWWWWWWWWMMMWWWWMMMMMMMMMMxxxMxxnn,,,,,,,,,,,:
inxxMMMMnnnnnnxxnnxxxxxxxxxxxxnzz###znnnxxxnnxxxnzn#znzn#z#z#znnnxzxxxxnxnnnnnnnnnnMMMWWWWWWWMMMxMMMMMWWWWWWWWWMMMMWWWWWMMMMMMMMMMMxMMxxnxi,,,,,,,,,,:
xxxMMMMMznnnnnxxnnxxxxxxxxxxn#z+++#z####zxxxxxxznzzznn#zzz###zznznnnnxxnMxxMMMMMxxxMMWWWWWMMWWWWWMMMMMWWWWWMWMMMMMMMWWWMMMMMMMMMMMMMMMxxxx+,,,,,,,,,,,
MMMMMMMMznnnnnxxnnxxxxxxxxxz#*;+;+*;+#*znnnnnxnnz#nznx#zzzz#zzzz#nzzxnnnMMMMMMMMMMMxzMMMMxxMMMMMWWWWMMWWWWWMMWMMMMMMMWWWMMMMMMMMMMMMMxxxxxz,,,,,,,,,,,
MMMWWMMMznnnnxxxnnxxxxxxxxz#;+##*;*zi*#zn#nzxxxn##zznnzzzz##z#z#nz#zxnnxMMMMMMMMMMnxMMMMMMMMMMxxMMWMWWWWWWWWWWWWWMMWWWWWMMMMMMMMMMMMxxxMMxz:,,,,,,,,,,
MMWWWWWxznnnnxxxnnxxxxxxxn#;#i;;xn*;#;#+n#nnxxxn++#znnnz####z#znzz#nxxzxMMMMMMMMMMMMMMMMMMMMMxxxxxMWMMWWWWWWWWWWMMMWWWWWMMMMMMMMMMMMMMMMMxz:::,,,,,,,,
MMMMMMMnnnnnnxxnnxxxxxxxx#+*i*n;zxn++#i+zxxnnxxn+z#zzn###z##n#zn#n#zxxzMMxxxxxMMMMMMMWWWMMWMMxxxxxxWMMWWWWMMMMWWWMMMWWWWWWWWMMMMMMMMMMMMMxz:::,,,,,,,,
MMMMMMMnxnnnxxxnxxxxxxxxx#;#;xx*+xxnxn;#zxxz#zxzxz#xnz##zzzzz#zz###zxxzxnnnnnnnnxxMMWWWWWMMMMxxMMxMWMMMMWMMxMWWWWWWWWWWWWWWWWMMMMMMMMMMMxxz::,,,,,,,,,
MMMMMMMnnxnnxxxnxxxxxxxxn#;++xx+;xxx+;;##xxnnnnnnz#zzzzz##zzz+zz##+zxnnxzzzznxnzznMMMWWWWWWMMMMMWWWWMMMMMMMMMWWWWWWWWWWWWWWMMMMMMMMMMMMxxx#,::::::::::
MMMMMMMnnxnnxxxxxxxxxxxxn#i*+#i;;nxxi#;##nn#zznzxz#zznzzzzz#znnzz##nnnnnzzzzxnzzzxMMMWMWWWWMnnnnxxMMWWMMWWMMxMWWWWWWWWWWWWMMMMMMMWWMMMxxxn#:::;;;;;;;;
MMMMMMMnnxnnxxxxxxxxxxxxn#i+;i#xi+xn;#i+xnz##xzzxnnz##z#nnzz#z##z##xxxnzzzznxzznnxMMWWWWWMMxnnnnnnnMMWWMWMMMMMWWWWWWWWWWWWMMMMMMWWMMMMxxxx#;;;;;;;;;;;
WWWMMMxnnxnnxxxxxxxxxxxxn#;#;nnn#ini+i#+xxzz#n+nz#nnz#z#nzzzzz##z#xxxx#zzznnnzzznMMMMWWMWMMxnnnnnnnMMMMMWWWWWWWWWWWWWWWWWMMWWWWWMMMMMMMMxx+;;;;;;;;;;;
MWWWWMxnxnnnxxxxxxxxxxxxx#**+;#xn;i*+i#nxxn+#zzn+#xn+zz#zn#z#xz#z#xnnnzzzznnnzzznMMMMWWMMMMxnnnnnnnMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMx#;;;;;;;;;;;
MMMMMWnnnnnxxn#nxxxxxxxxxz#i+#i#x*#+;z#xxn#zznxzzz#znznzzz#znzzn#znnnnzzznnnzzzznMMMMWWMMMMxnnnnnnnMMMMMMWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMxz;;;;;;;;;;;
MMMMMWxxnnnnzznnnxxxxxxxxx#zi;+z#+;*zzxxxz+nzzxnznnnzznznz#zzzn#znnnnnzzznnnzzznnMMMMWWMMMMxnnnnnnnMMMMMMWWWWWWWWW@WWWMMMWMMMMMMMMMMMMMMMxn;;;;;;;;;;;
MMMMMWnnnnxnnnzn#*+xxxxxxxxz#z+*+#z#nxxxxn+##nnxnnzznzzxz#nz###nnnnznnzznnnzzznzxMMMMMWWMMMxnnnnnnnxMMMMMWWWWWWWW@@WWWWWMMMMMMMMMMMMMMMMMxniii;;i;;;;;
MMMMMMnxxxnxn##z##+nxxxxxxxxxzzzzzzxxxxxxxn#nznxxxnnznzzz#nzzznzzzznnnzzzzzzzzzzxMMMMMWWWMMMMMMxxxnMMMMMMMMWWWWW@@WWWWWWWWMMMMMMMMMMMMMMxxnii;;;;;;;;;
MMMMMMxxxnn+#nxxz*zxxxxxxxxxxxxxxxxxxxxxxxxx#zxx#nz#nnzzxn##z#z##zznnnznnzzzzznzxMMMMMMMWWMMMMMMMMMMMMMMMWWWWWWW@@WWWWWWWWMMMMMMMMMMMMMMxxn*iii;;;;;;;
WWMMMMxxxn#+#+zzxnxxxxxxxxxxxxxxxxxxxxxxxxxnzznxnnzxznnnnnzzzn###nnnxnzzzzzzznnnMMMMMMMMMMMMMMMMMMMMMMMWWWWWWW@@@WWWWWMWMMMMMMMMMMMMMMMMMxn*iiii;i;;;;
WWMMxxxxxnznnzn+#nxnnxxxxxxxxxxxxxxxxxxxxxxnnnnx#z#nnnnzzzn#nn#zznnnxnnzzzzzznnnMMMMMMMMMWMMMMMMMMMMMMMMWWWWWW@@@WWWWWMMMMMMMWWMMMMMMMMMMxx+iii;;:;i;;
MMMMMMxxxxnnz###*zn+xxxxxxxxxxxxxxxxxxxxxxnnxnnnzznnnnn#nxznnnnzznnnnnzzzzzzznnnMMMMMMMMMWMMMMMMMMMMMMMMMMWWWW@@WWWWWWMMMMMWWWWWMMMMMMMMMxx+iii;;;ii;i
xxxxMxxMMxxnzzx++#*+xxxxxxxxxxxxxxxxxxxxxnnxnnnnn#znnnznnzzzzxnzznnnnnzzzzzzzzznMMMMMMMMMWMWMMMMMMMMxxMMMMWWW@@@WWWWWWMMMMMWWWWWWMMMMMMMMxx+ii;;iiii;i
xxxxxxxxxxxnnxxxxn#nxxxxxxxxxxxxxxxxxxxxnznxxnnnnzznnnzznzznnxnnnnnnnnzzzzzznzznMMMMMMMMMWWWMMMMMMMMMMMMMWWWW@@WWWWWWMMWWWWWWWWWMMMMMMMMMxx#ii;iiiiiii
zxxxxnnxxxnnnxxxxxxxxxxxxxxxxxxxxxxxxxxnnnnnnnznzzzzzzzxnnnnnnnnnnnnnnnnnnzzznnxMMMMMMMMMMWMMMMMMMMMMMMMWWWWWWWWWWWMMMWWWWWWWWWMMMMMMMMMMxx#iiiiiiiiii
zxnxxxxxxxxnnnnnnnxxxxxxxxxxxxxxxxxxxnnnnznnzzzzznz#nnxnnzznzzznnnnnnnnnnnznnnnxMMMMMMMMMMMWMMMMMMMMMMMMWWWWWWWWWWWWWWWMWWWWWWMMMMMMMMMMMMxniiiiiii;ii
z#xxxxxxxxxnnxxxxxxxxxxxxxxxxxxxxxxxxnnnznnnzznzznzzznnnnznznznnnnnnnnnnnnnnnnnxMMMMMMMMMMWWMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMxxiiiiiii;;;
nxznxxxxxxxxxnxxxxxxxxxxxxxxxxxxxnnxnnxzxzzzznn#znnnnnznzznnnnnnnnnnnnnnnnnnnnnxMMMMMMMMMMMWWMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWMMMMxMMMMMMMMMMxx+iiiii;;;;
nxxnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxnxnnxxnnnnnnnnnnnnxnnnnnnnznnznnnnnnnnnnnnnnnnMMMMMMMWMMMWWMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMxxx#ii;;;;;ii
nxxxxxnxxxxxxxxxxxxxxxxxxxxxxxxxnnnxxnnnnnnnnnzxxxnnzznnzznnnxxnnnnxnnnnnnnnnnnMMMMMMMWWWMWWMMMMMMMMMMMWWWWWWWWWWWWMWWMMMMMMMMMMMMMMMMMMxxxxziiii;iiii
xxxnnnxxnnnxxxxxxxxxxxxxxxxxxxxnnnxnnnnnznnnnnnnnxnnznnnnnxnnnxxnnnMnnnnnnnnnnnMMMMMMWWWWWWMMMMMMMMMMMMWWWWWW@WWWWWWWWMMMMMMMMMMxxxxxxxxxxnnniiiiiiiii
xnnnxnznnnnnnxxMxxxxxxxxnnxxxxnznnnnxxxxxnnnxnxxnxznnnxnnnnxnnxxnnnMnnnnnnnnnnnMMMMWMWWWWWMMMMMMMMMMWWWWWWWWW@WWWWWWWWWMMMMMMxxxxxxxnnxxnnnnniii;;i;ii
xnxxxxnnxxxxxxxxxxxxxxxnnxxnnnnnnnnxxnnzxxnnxxxnxxnnnnxnnznxnnxxnnnMnnnnnnnnnnnMWMWWWWWWWWWMMMWMMMMMWWWWWWWWW@WWWWWWWWWWMMMxxxxxxxxxxxxxnnnnniii;i;;i;
xxxxxxxnnxxMMMMMxxxxxxxnnnnnnnnnnnxxnnxnnxxnnxnzxnnnnnxnnnnnnnxxnnxMnnnnnnnnnnnMWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWWWWWMMxxxxxxxxxxxxxxnnnnz*;:;ii;;i
xxxxxxxxxxxMMMMMMMxxxxxxxnnnnnnnnnxnnxxxnnnnxxnnnnnnxxnnnxnnnnxxnzMMnnnnnnnnnnnMMWMMWWWWWWWWWWWWWWWWWWWWWWWW@@WWWWWWWWWMxxxxxxxxxxxxxxxxxxxnz*;:;::::;
xxxxxxxMxxnxxMMMMMxxxxxxxxxnnnnnnxxnxxxxnnxnxnnnxnnnnxnnnnnnnxxnnzWMnnnnnnnnnnnMMWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMxxxxxxxxxxxxnz+iii;;;;;
xxxxxxMMnz#zxxMMMMMMMxxxxxxxnnnnnxxnxnxxnnxnxnnnxnxnnxxnnnnnxxxnnnWMnnnnnnnnnnnMMWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWWMMMMMMMMMMxxxxxxxxxxxxxxn+iiiii;ii
xxxxMMxxnnn+#xMMMMMMMxxxxxxxxnxxnxxxxxnnnxnnxnxxnxxnnnnxxnxnxnnnnxWMxnnnnnnnnnnMWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@WWWWWMMMMMMMMMMxxxxxxxxxxxxxxxn#iiiiiiii
xxxxMxxxnnnn#nxMMMMWMMxxxxxxxnxxxxxxxxxxxnnxxxxxxnnnnznnnnxnnnnnzMWMxnnnnnnnnnnMMWWWWMMMWWWWWWWWWWWWWWWWW@@@@WWWWWMMMMMMMMxxxxxxxxxxxxxxxxxxxziiiiiiii
xxxxxxxnnnnnnzzxMMWWMMMxxxxxxxxxxxxxxnxxnxxxxxxxxnnnnnnnnnnnnnnnzWWxnnnnnnnnnnnMMWWWWWWWWWWWWWWWWWWMWWWWWW@@@@WWMMMMMMMMMxxxxxxxxxxxxxxxxxxxxniiiiiii;
xx##xxnnnxxnnxnnMWWWMMMMxxxxxxxxxxnzxxxnxxxxxnnnnnnnnnnnnnnnnnnnzWWMxxnnnnnnnnnMWWWWWWWWWWWWWWWWWWWWWWWWWW@@@WWWMMMMMMMMMMMMMxxxxxxxxxxxxxxxxx+iiii;ii
xxznnn+#zxxxxxxxzMWWMMWMMMxxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnWWMxnnnnnnnnnnMWWWWWWMMWWWWWWWWWWWWWWWWWWW@WWMMMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxn*iiiiii
xxxxn+*zxxxxxzMMMMMWWMMMMMxxxxxxxxxxxxxxxxxnnnnnnnnnnnnnnnnnnnnnxWWMxxnnnnnxnnnMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMxxMMMxxxxxxMMMMMxxxziiiiii
xxxnnxxxxxxMMMMMMMMMMMMMMMxxxxxxxxxxxnxxnnnnnnnnnnnnnnnnnnnnnnnzMWWMxxnnnnnnnnnMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMxxxxxxxxxxxxxxxxxxxx*iiiii
xxxnnxxnnxMMMWMMMMMMMMMMMMMMMMxxxxMxxxxxnnnnxxnnxnnnnnnnnnnnnnnzWWWMxxnnnnnnxxxMWWWWWMMMMMWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMxxxxxxxxxxxxxxxxxxxxxxnniiiiii
xxxxxn##xxMMMMMMMMMMMMMMMxMMMMMWMMMMMMMMMxxxxxxxxxxxnnnnnnnnnnnnWWWMxnxnnnnnxxxxWWWWWWWWWWWWWMMMMMxMWWWWWWWWMMMxxxxxxxxxxMMMxxxxxxxxxxxxMMxxxxnziiiiii