,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;iiii*+ii*+znxxxn#znn++##znxxxxxx#+++++++++++++++##########
,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;:,,:;;;;iiii+#i*+znnxxxzznxn###zxxxxMxxz++++++++++++++++##########
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::;;;;;;;;;,.:;;;;;;;ii#z*+#nnxxxxznxnz#znxxxxMMxn++++++++++++++++++++#######
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::;;;:;;;;;;;;;i*#z+#nnxxxxxxxxnznxxxxMMMxx#++**+++++++++++++++++######
,,,,,,,,,,,,,,,,,,,,,,,,,,:,,:,,,,,,,,::::::::::::::::::::::::::::::::::::::::,,,;;;;;;;;;;;;;i+zz#znnxxxxxxxxxxxxxxMMMMxn++++++++*+++++*+++++++++####
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,::::,:::::::::::::::::::::::::,....,:,,,:,.,:;;;;;;;;;;;;;i+znznnxxxxxxxxxxxxxMMMMMMx#+++###++++***iiii;i**++++###
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,::::::::::::::::::::::::::::,.````.,,.,:,,,:;;;;;;;;;;;;;;i#nnnnxxxxxxxxxxxxMMMMMMMMxzznnnz++++****;::,.,::i*++++#
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::,.```````.,,,,:::;;;;;;;;;;;;;;*#nnnnxxxxxxxxxxxMMMMMMMMxnxxxx#++++***i:,.....`.:;*++++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::,``````````...::::;;;;;;;;;;;;;;*znnnnxnnnnnxxxxMMMMMMMMMMMMMx#++++++*i:..```.``.,:i*+++
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,::::::::::::::::,,.,:::,````````````.::::::;;;;;;;;;;;;*znnnnnnnnz#nnxxMMMMMMMMMMMMxxxnnnnz#*:.````````.,,:;**+
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::,...,,,,,.```````````.,::::::;;;;;;;;;;;*znnnnn+#*;#znnxMMMMMMMMMMMMMMMMMMMxxn+:```````..,,::;**
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::,,.`....`.````````````..,::,:::;;;;;;;;:.+zznnzi;:.;;::zxxMMMMMMMMMMMMMMMMMMMxz;.```````..,,::;ii
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::,,``````````````````````,::::::::;;;;;;;:.+#zzz;....,,.:#nxMMMMMMMMMMMMWWWMMMx#,`````````...,::;:,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::,.````````````````````..,::::::::::;;::,:;++*:;....:,,:i+#nxMMMMMMMMMMWWWMMMx#i,````````....,,,,..
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::,,.```````````````````,,,,,:,,,,:::;;;:::;*;......;;,..i++zxMMMMMMMMMMMMMMMn+i;,.```````..........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::,.```````````````````..``.....,.,:::;;::,;:......;i*ii;**+#zxMMMMMMMMMMMMMz*;;:,.``````...........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::,,``````````````.```..````.```..,:::;;;;::;:,.....;i:+,:*++#zxMMMMMMMMMMMx#*;::,,.`````............
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,::::::::::::::,.`````````````.........``````..::::::;:::;,::....,,,+i`*++#znxxxMMMMMMMMn#+;,,,...................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,:::::::::::,,`..,,.```.............```````.,:::::::::::.;i,....;+#i`;*+#zzx#+zMMMMMMxxnz*,,,...................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,::,::::::::,,.,.,,.................``````.,::::::::::::.::,....:+*:`;*+#zznznnnMMMMxn#*i;,,,........,,.........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,...`,,.,,............``````..,:::::,,,,::,:*,....,;;.`:*+#zznnnnxMMxn+;::::,,........,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,::::,,,.,...``.,:,...,,..,,,,,,,``````:::::,,,.,,,,:*,.......`.;+##zznnnnnxn*,.,,,........,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,::,:::,...`...`.````,....,.,,,:::::,``.,,,:::::,,,..,,,.::,:.......i+##zznnnnn#:.............,,,,,,::::::,,,::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,,``..```````````.,,,,:::::::::,,,,,,::::,::,,...,,,,;:.......*+#zzznzzzi,,.............,,,,,::::::::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,.,,,::,..``````````````..,:::::,:::::,,.,..,,,,::::,,,.,.,.,.......,*+#zzz###:,,,.............,,,,:::::::::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.``.,,,,,,.`````..`````..``..`,,..::::.``.,,,,,,,:::,,,,,.......,...,*##zzzz+:,,,,,............,,,::::::::::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....`.,,,:,..``.`...```````````.....,::,```.......,::::::,,...........,+##zznz:,,,,......,.....,,,,,::::::::::::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,:::,```.``.`...````````,.....,,,``........,::::::::...........,+#zzzz;,,,.,....,,,..,,,,,,::::::::;;;:::;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,```...``.,....``````.:.................,,:::;::::...,;:....:+#zzzz,,.....,,.,,,,,,,:::::::::;;;;;;;;;;;
..,,,,,,,,,....,,...,,,,,,,,,,,,,,,,,,,,,:::,.``````.`````````.`,..`,,..`............`..,::;;:::,...:,....;#zzzz#,....,,,,.,.,,,,:::::::::;;;;;;;;;;;;
,......,,,..``....`..,,,,,,,,,,,,,,,,,,,:::.````````...````````,,::,,:;,`................,::;;:::,.......;+zzzznzi:,,,,,,,,,,,,,::::::::;;;;;;;;;;;;;;
,.......,,...`.`````...,,,,,,,,,,,,,,,,,,,::::,``.```....`.```,.::;;;;:..................,::;;:::,,....,i#zzzz#znn+,,,:::::,,,,,,::,,,:::;;;;;;;;;;:;;
.```.,.``..,..````````..,,,,,,,,,,,,,:,,,::;:,.`.,...`````.....;;;;ii:,,,,,,,,,.........,:::;;::,,,;:;*#nnnn##znxx#::::::,,,,,,,,,,,,,,,::;;;:::::::::
````.,....,,..````````...,,...,,,,,,,:,,::::::.,.,.,,`,:.:,;:,:;iii**;:::::::,,,,,,,..,:::::;;:::::;i+#nnnnnnnxxxxn;;;;:,,,::::,,,,,,,,,::::::::::::::
````..........`````````........,,,,,,,,::::::,.,:,,;:`,:;:iiiiiii+ii*i:::::,,::::,,,,,:::::::::::::;+znnxxxxxxxxxxx*i;;;::::::::,,,,,::::::,,,::::::::
`````````````````````````````...,,,,,,,,:::::,:::,;i;:.;ii*+*+**++**ii;::,...::::,,,,::::::::,,:::;;+znnxxxxxxxnnnnnz*iii;;;;;::,,::::::::,,,,,,,:::::
`````````````````.....`............,,,,,:::::::;,:i*i;,:;i:+*#++++**ii;,,...,,:,:,,,:::::::::::;;;;;*nz#znnnnz##zz#znnz+*iii;::::::::;;;::,,,,,,,,,,::
`````````````................,,,.....,,,,::::;:,:ii**:::..;*ii*+++++;::,,:::,,,,,,::::::::;;;;;;;;::;z++#nz#+*+++**+####+++i;::;:::;;;i;:::::::::,,,::
````````````..........,,...,,,,,,,,,,,,:,:::::::;i*,;;..``,:,;*+++**::::::::::,,::::::::::;;;;;;:::;iz#+#+***********+#++++#+*;;;;;;iii;;:::;;;;;::::;
````.....`.........,,,,,,.,,,,,:::,:,,,:,,,::::::;;.::..`````;i*++*;:::::,,::,:::::::::::;;;;;;;;;;;*++##+***********++*++++zzi;;;iiiiii;;;;iiiii;;iii
``..................,,,,,,,,,,,,,,,.,:,:,:::::::::,,.,,.`````;*++i;;:::,,,:::::;;;;;;;;;;;;;;;;::::i+zzzz************+**+++#xx*iiiiiiiiiiiiiiiiiiiiiii
...........,,,,,,....,,,,,,,,....,,..::::::::::::,,,````````.;++i;:::::::::::;;*+*;;;;;;;;;;::::::;;*z#++***************+++#xx+iiiiiiiiiiiiiiiiiiiiiii
...........,,,,,,,...,,,,,,,......::.,::::::::::::::.```````,i*ii::::::::::::;+zzz#i;;;;;;;:;;:::;;i*+**************+***+++zxx*iiiiiiiiiiiiiiiiiiiiiii
.,,,........,,,,,,,,,,,,,,,:.::,,,;:,,:::::::::::::::.``,.`.**++i::::::::::::;znnnnzi;;;;;;;;;:;iiii****ii**********+***+++#xx*ii;;iiiiiiiiiiiiiiiiiii
,,,,,,,.....,,,,.....,,,,,.:;;;;;;;;,;;;:::,:::::::::::.``.*#zzz*::::::::::::;;+nxxn+;;;::;;;;;iiiii+**i************+***++#zzx*;::;;;;iiiiiiiiiiiiiiii
,,,,,,,...,,,,,..`.........:ii*i***iii*i:,,,,,,::::::::::i+##zz#i::::::::::::;i*nxxni:::::;;;;;i*ii*+****++******#*+***+#zxxxxi,::::;;iiiiiiiiiiii;iii
,,,,,,,,,,.,.,,.```````....:;;:.;*+++++i,,,,,,,,::::::::+####+:..,;:::::::::;*:iznxz::::::;;;;;*ii*+++##z+*******z++***+znxxxz:;;:,::;::;;iiiiii;::iii
,,,,,,,,,,.,,,.....`````....:..`;+#####i:::,,,:,,,,:::::*+++i.```.,;::::::::;,,i#nn*;:::::;;;;;*i*++#zn#********+nz#***+++#znn*i;;:;;;,,:;iiiiiii;iiii
,,,,,,::,,,,,,...........,,.,```;#####+i::,:,,::,,,,::::i**:`````:i;::::::::::,i##z;;:::::::;;;*i*+znz#*********+nxn#+*++++znxzii;;;;:::;iiiiiiiiiiiii
,,,,,,,,,,,,,,,,.........,,,,..`;#z#z#+::,,,,,,::::::::i++,`````.;ii;::::::::;,+###*;;:::::::;;***znz#**********+nxxn++++++#nx#ii;;;;;;;iiiiiiiiiiiiii
,,,,,,,,,,,,,,,,,..,,,,,,,,,,:`.i#zzz#i:,,,,,,,::::::::**;``````.;ii;::::::::;;+#zzzi;:::::::;;+**nz++**********+zxxn+++++++#n#ii;;;;;;iii;iiiiiiiiiii
,,,,,,,,,,,,,,,,,..,,,,,,,,,,::i*####*:::,,:,:,:::::::;*i.```````.;ii:::::::::;++nxx#;::::::::izi+z#*+**********+#xxx+++++++#znii;;;;;;;;;;;;;;iii;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::+##z##i::::::::,:,:::::;i,````````.,;i:::::::::*+zxxxn+;:::::::;+i+++*+**********++zxx#++++++##x*i;;;;;;;;;;;;;:;;;::::
,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::+++###*::::,::,,,,:,::,;.```.`````.;;;;:::::::;#nnxxxxni:::::::i*i++++******++++++++nxz++++++##n#i;;;;;;;;;;;;::::::::,
,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;iiii**+#+i;::,,,,,,,,,:..````,:.````.;i;:::::::*zxxxxxxn+;::::::***++++******++zz#+++zxn++++++##nn;::,:::;:::::,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,::**+#+####++*;;:,,,,,,,,::``````.;;.```.,i;::::::;#nxxxxxxx+;::::::;i*++++******+#n#+#+#nxx##+++###zx;,,,::,::::,,,....,,,:
.....,,,,,,,,,,,,,,,,,,,,,;i*++++##+#++i;..,,,,,,,:;.```````,;.```..ii::::::*zxxxxxxMx+:::::::ii*++++******+#z#+#z#xMMn##+#####x*,,,:::::,,,...,,,,:::
.......,,,,,,,,,..,......,:*i;***#*;;++;.`.,,,,,,,;;````````.;,```..;*::::::+nxxxxxxxxz;:::::,;i+++++****+++##+###zxMMx########n#....,,,,,....,,,:::::
`````......,,,,,....`````,,**+**i*++*+;:``.,,,,,,,;;````````,;,`....,*i:::::zxxxxxxMxxn;:::,..;*++#+++*+++++#++#zzzxMMMz###z###nz.....,,..``.,,,,,:::,
`..```............```````.,**++i*#++*i.:``.,,,,,,,:;```````.;i,..i##*++::::;nxxxxxxMMxx#:::,,:i*++##+++++++++####znMMMMxz#zn###nn.......```.,,,,,,,,,,
`....`.....```...````````.:**#+i+++++*.,``.,,,,,,,::``````.:i*;;#nnnnn*::::inxxxxxxMMxxni::::;i+####++++++++####zzxWWWMMnzxz###zx;.....````...........
.````.......```.....`````.,*+#+i+++*+*,`..`:,,,,,:;;``````,;i++zxnnnnx*:,::*nxxxxxMM#nxx#::::;*+#####+++######zzxnMWWWMM+zxz###zn#......```..........,
.`...........````....````.,*#zz+;:,,,...``;i;:,,,;+;`````.,,*++znnnnnx#:,,:+xxxxxMx+;zxxn:,,,i*##z##z##z#zzzznnxMxWWWWMx:nn####zzn:,,,.....,,,,,,,,,,:
`..............```........,+**z##+*;``.:.`.,****i*+;`````..:*+#znnxxnxz:,,:nxxxxMM#;*xxxn;,,,*#z#z####zzzzzzzznMMWWWWWMz,#z####zzni,,,,,,,,,::::::::::
.....................,,,,.:+;*###+;.```..`..+#####+:`````..:*+zznxxnnxni,,:nxxxxMxi*nxxn;,,,,*#zznzzzzzznnnnnnMMWWWWWWM+i#nxxz#zzx+:::,,,,,,::::::::::
...................,,,,,,.;++++*:,:;;````.:;#zzzz##.`````..,*#z#nMxnnnxi,,:nxxnzxxnxxxz:...`,zxxzzzzzzznnnnnnnxMWWWWWWM*izxMnz#zzx#::::,,,,,::::::::::
..................,,,,,,,.:*++*i*++*,```.;#zznxxnz#.```....,*#zzxxnnnxn:,,innzi:;#xxx#.`````.nxxnnnnnnnnnnnnnnnxxxMWWMx;,*xnzz#zznn::,,,.,,:::::::::::
................,,,,,,,,,,.;i+**++i:.i,;;;znnxxxxnz,.`.....:+#znnnnnnx#,,,*nn*;::*xx+..`````.#xxnxxxxxMMMMMMMMxxxxxMMMz..+znn##zznx;,...,,,:::::::::::
..................,,,,,,:::ii;i;*ii,*i.,``*nnxxxxxn;..,.``.i##nnnnnnnx;...#xn**+#nx#,,....`.inMMMMWMMMMWWWWWWWWWWWWM+;...#nn####zzx*,..,,,,,,,,,,,,,,,
......................,.:..:+++*+#i++;,.``:+i;*zzzzi:;,.`.,*+zznnnnnnn...,nxxxxxMMMz,..`....+xMWMxMMMxxMWWWWWWWWWWWM*....+z#####zzn+,,,,,,,,,,,,,,,,,,
,,.,,,,.,.,.............:.`i#znnnnz+#i;```,i,,,,,:;*i;....i*##znnnnnn#...ixxxxxMMWMn....`..,zxMMnnMMMx#nMMWWWWWWWWWM;,,.,+######zznz,.............,,,,
,,,,,,,,,,,,,,...........`.iznxxnzz++#;```:i,,,,,,:i;....,*++#nnnnnnxi.`.#xxMMMMMWMx,......;zMMMznxMxn+zxMMMMMMMxWWM;,,,:#######zznn,.........,,,,,,,,
,,,,,,,,,,,,,,,,,......,``,*#znzzzz#*+i```;;,,,,,,:,..,..;*i+#nnnnnxn,.`,nxMMMMMMMWx,......*nMMxz++++*zznznnnxxxxMWMi,,,;######zzzxx:,,.........,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,``,+##zzzzz##**``.i;,,,,,:..,:..:;,+##nnnnnx#...inMMMMMMMMMn,......#xMnznxxxxxnz##zzznnnxMWMn,,,i######zzzxx:,,,,,,,,,,,,,,...
,,,,,,,,,,,,,,,,,,,,,,,,``,+##zzzzzz#*i``.i:,,,,,:,::...,.;i+znnnnxx;.,,+nMMMMMMWWM*,,,,,,;zMMzzzznnxnz#####znnnnnMMx:,,i######zzzxM;,,,,,,,,,,.......
,,,,,,,,,,,,,,,,,,,,,,,,``,+#zzzzzzz#*;```;:,,,,,:i;.....:,,+nxnnnx#,,,,i+xWWWWMMMM*:,,,,,*nMMzz#znxxz#######zMxnnxMM*::*######zzzxM:,,.........,,,...
...........,,..........,``:##zzzzzzz#+,```::.....,;...`.,.iznxnnnnx;,,,,;;nMWMMMMMMi:,,,,:#xMMzz#zz#z###+####nxMMxxMMz::+#zzzzzzznMM;,,,,,,,,,,,,,,,..
....................``.:,,i##zzzzzzz#+,...;;.....,.......;nnnnxMxxz:,,,,;;zMWMMMMMM*:,,,,:zMMMz#####z####+###zxxMWWWWx;;+znnnnnnnxMM:,,,,,,,,,,,,,,,,,
.......................``,*#zzzzzzzzz*````;;.....,......inxnnnxMMx#:,,,,;inMWWMMMMM+,,,,.inMMxz##znnnnz#+++###zxxWWWWM+*znxMMMMMMxMM+,,,,,,,,,,,,,,,,,
,,,,,,................,``,+#zzzzzzzzz*````;;...,,.....,+xxxxnnxMMx;:,,,,:inMWWMMMMM+,,,,:znMMxz#znnnn###+++####znxWWWWz*nMWWWWWWWWWMn:,,,,,,,,,,,,,,,,
,,,,,,,................,:i+#zzzzzzzzz#*:::i:,,,,:,,,;*znxMxxxxMMMxi,,,,,,:nMMWWMMMMz::::ixMWWnzzznnnnnz#+++#####zznWWWxizMWWWWWWWWWMi:,,,,,,,,,,,,,,,,
,,,,,,,,.............,,,::*#zzzzzzzzz#*::;:,....,+znnnnnxxxxxMMxxx+,,,,,,:zMMWMMMMMz::::iMWWWnz#znxMMxz#+++#####zznMWWMizWWWWWWWWWW#::::::,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,.*zzzzzzzzzzz:...:,,,,,,#nnnnxxxxxxxMM*:z#,,,,,,:nMMMzMMMMn::::+MWWWzz##z#nnxxn##+#####zzzMWWM*nWWWWWWWWWW+::::::,::,,,,,,,:,
,,,,,,,,,,,,,,,,,,,,,,,:.:#zzzzzzzzzzz;:..:,,,,,:#nnxxxxxxxxxxx#*zz:,,,,,:nxMM+nMMMx::::zWWWMznnzz#z####zz#######zzxWWW+xWWWWWWWWWW*::::::::::,,,:,:,,