,,,....,......``..````````.....,,,::::::,,,...,.,...,,,,,,,,,..........................................,,:::,,::::::,::::,,,,,,:::,:::::,:::::::::::::
........,.......................,,,,,::,,,,,......................................................,,,..,,,::::,,::::,:::::,,,,,,::,,::::::::::::::,:::
............................,,,,,,,::,,,,,,.....................,,............................,,,,,,,,..,,,::::,,,,::,,,:::,,,,,,,,,,,,,,:::,::::,,:::
,.................``......,,,,,,,,,,,,,,.......................,,,,,,........................,,,,,,,,,,.,,,,,,,,,,..,,,,::::,,,,,,,,,,,,,,,,,,,,,,::::
.,,..............````.....,,,,,,,,,,,,...````....,,,.........,,,,,,,.........................,,,,,,,,,,,,,,,,,,,...,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,::
........```....`...``.....,,,,,,,,....``````...................,,,,.........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,:
,....`````````````...........,,,.....``````..................................................,,.,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,,,,.,,,,,,.,,,,
,,,..`````````````................`````..........................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,................,,,
,........```````..................````.....................................................,,......,,,,,,,,,,,,,,,,,,,,,,,,,........................,,
,,,.......................,,,....``.``........................,,,,.......................,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,...........................
.....`````````...........,,,....`````...........................,,,,,,,.........,.......,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,..............................
...``````````````.......,,........`...............................,,,,,,,,,..,,...........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.............................
...`````.``````............`````..............................................,,..........,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................
...```......`..........,,.....``.............................................,,,,.........,,,,,,,,,,,,,,,,,,,,,,,,.,.................................,
.....................,,,.......``............``````.....................................,,,.,,,,,,,,,,,,,,,.........................................,,
.........................................................................................,......,,,,,,............................................,,,,
.........`````.....................``....................................................................................................,,,,,,,,,,,,,
......````..................................``......................................................................................,,,,,,,,,,,,,,,,,,
,....```........``..............................................................................................................,,,,,,,,,,,,,,,,,,,,,,
,,,.......................`..............................................................................,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,.......................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...............................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.............,,,..........................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,
.........................................................................................,,,,,,,,,,..,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.............................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
......................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.......................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.............................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
..............................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
............................................................................................,,,,,,,,,,,,,,,,,,,,::::::::::;;;;iii****i*******++++++++*
.......................................................................,,,,,,,,,,,,,,:::,,,,,,:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiii;;
..................................,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,,,,,,,,:,,,,,,,::::::::::;;;;;;;;;
,,,,,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,..,,,,,,,,,.,,,,,....,,,,,,,,,,,,,,,,,:::::::::::::;;;;;;;;;;;ii;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
;;;;;::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::i::::;;;;;;;iiiiiiiiiiii*****iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*********************
,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::;::;;;;;;iiiiii*ii***+x#****************iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*****i******************
:::::::::::::::::::::;;;;;;;;;;;;i;ii;;iiiiiiiiiiiiiii;iiiiiiiiiiii#xn#*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;n#;zz*i;;;;;;;;;;;;;;;;;;;;;;;;+ii;iiiiiiiiii;iii;iiii;iiiiiiiiiiiiiiiiiiiiiiiiiiii
,,,,,:::,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;#xnz;;;;;;;;iiii;;;i;;;;;i#M#iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;#MWn;;;;;;;;;;;;;;;;;:+nxnzM*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiii
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,:::,:*MM*:,,,::::::::::::zWx+::;::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::;::::::::::::::::::::::,::,:,::::::::::::::::::,:;x+:::,::::::::::;xMz;:::::::::::::::::::::::::::::::::::::::::::::::::;;;;;
;;;;:::::::::::::::::::::;:;:;;::;;::::::::::::::::::::::::::::::::::::::::;zi;;;::::::::;+xxi:::::;:;;;;;;;;::;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;i;
;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;:;;;:;;;:::;:;::;;;:;::;::::::::::::::::;#*;::::::,:i#xxi:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiii
;;;;;;;;;;:;:;;;;:;;:;;;;::;;;;;;;;;;;;;::::;;:::::::;;:::::;;::::::::::;:;::;#*;::ii;i+nMxi;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;
;;;:::::::::::;:::::::::::::::::::::::;:::::::::::;:;;;::::::::;;;:;::;;::::::;z#*#nznxMMx*;;::;;;;;;;i;;;ii;i;;;;;ii;;;;ii;;;i;;i;;;;;;;;;;;iii;iiiii
:::::::::::::;;;:::::::::::::::::;;;:::::;:::::::::;;;;:::;;:;;;;;:::;:::::::::;zxMWWWWMxi::;;;;;;;;;;;;;;;;;;;;;;ii;;;;iii;;;;ii;;;;;;;;;;iiiiiiiiiii
:::;;;::::::;::;::::::::::::;::;::::::::::,,:::::::::::::::::::::::::::;;;;;;;;;ixWWWWWW+:;;;;;;i;;;;;;;;;;;i;;;;iii;i;;;;;;;;;;;;;;;;;;;;;;;;;i;;;;i;
:::::;:::::::;;;:::;;;;;::;;;;;;;::;::::::::::;;:,,::::::;::::::;;:;;;;;:::::::::zMWWWWx;:;;;;ii;;;;i;;;i;;;iii;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiii;i
:::::;;:;::;;;:;;:::;;;;;;;;;;;:::;;;;:;;;;;;;;;;;;;:;;;;;::::::::;::::;;;;;:::::#MMMMMz;;;;;;;iiiii;iiiiiiii;;;;;;;;;;;;;;;;;;;;;iii;;;;i;i;iiiiiiii*
:::::::::::::::;;;::::::;;::::::::::;;:;;;:::::::;;;;;;::::;;;;;:::::;;;i;;;;;::;ixMMMM*:::;;;;;;;;;;;;ii;;;ii;iiiii;;;;;;;;;;;;;iiiii;;;;i;iii*iii*ii
:::::::,,,,::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;:;;;;;nMWMM+;;;;;;;;;;;;;;;;;;ii;;iiiiiiiiiiiii;i;;iiiiiiii;iiiiiiiiiiii*i
:::::::,,,,,,,:,,,,:::::::::::::::::::i;::::::::::::::::::::;;;;;;;;;:;;;;;;;;:::inMMMMz;;;;;;;;iii;ii;iiiiiii;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*iii
;::::::::,,,,,,::::::::::::::::::::::::::::::::::;;;:::::::;:::;;;;;;;;;;:;;;;;::izxxxxz;;;;;;;i;;i;i;iiiiii;iiiiiiii;iiiiii;;;;;;;i;;;iiiiiiiiiiiiiii
:::::::,,,,,,:::;;::::::::::;;;::::::::::::::::;:::::;:::::::;;;;;;;;;::;;;;::::;i+MMMWMi;;;;;;;;;;;;;iiiiiiiiiiiiiiiiiiiiii;;;;;;;i;iii;;;;;;iiiiii**
:::::::::,,,::::::::::::::::::::::::::::::::::::::::::;::::;;;;;;;;;;;;;;;;;;;;;;ixWMWWW+;;;;;;;;;;iiiiiiiiiiiiiiiiiiiiii;;iiiii;;;;;;iiiiiiiiiiiiiiii
;:::::::::::::::::::::::;:::::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+WMxW@W#;;;;;;;;iiiiiiiiiiiiiiiiiiiiiiiiii;;iiiiiiiiii;iiiiiiiiiiiiii
;;;;::::::::,:::::::::::::;;;;;::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MWnMW@Wni;;;;;i;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***
;;;;;:::::::::::::::::::::;;;;;;;;;;;;;;::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iWW@W@@@Mii;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*i
;;;;;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+Mz@@@@WW+ii;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
;;;;;;::::::::::::::::::::::;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+MiW@@@@Wz*i;;;i;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*****
;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#x;+W@@@@Mz+i;;;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*
::::::::::::::::::::::::::::::::::::;;;;::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;zn;;;*zM@x##i;;;;;iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
:::::::::::::::::::::::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::n#:::::iMn*ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
::::::::::::::::::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::::n+::::::M+::::::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
:::;;;;:::;::::::::::;;;;:;;;:::;i;i;:::::::::::::::::::::::::::::::::::::::::::z*::::::M*::::::::::::::;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
::::;;:::::;*::::::::;::::::::::::::::::;;::::::::i;:::;i;::::::::::::::::::::::#*:::::;Wi:::::;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
:::::::::::::::::::i+;:::::;;::::::::+i;*i:::::;::::::i;i;;;i::i*;::::::::::::i;n*;;;::*W;;;::;i*i*i;;;;;;;;;;;;++ii;iz#i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;::*+;::::::::;;;*i::::::::i+;;;:::;::;::::::;;*;*i;:::::i*#+i::i;*;;*#+**;::;i*##+*+++zM**####+**i;;;;;;;ii;;i*+##zz#*ii;;;i;;;;;;;;;;;#++++ii;iiii;i
:::::;:::::::;;:::::::::i;*+#*::;:;++:::::::::;;::::;i;::::;::::::::::i;*#i:::;;i;;**;;*iMMMMMxxxxxnz+*i#zznnnz+***#+i*#i+*i+i;;;;;;;;;;;;;;iiiiiiiiii
i;ii;::::::::::::::::::::::::::::::::::::;;i;::::::##;:::::::::::::::::;i*i:::::i;;i;:::;*znxxMxnnxxMMWMxn#+i;;;;;iiii****;;;;;;;;;;;;;;;;;;;;;;;;;;;;
::::::::::::::::::::::::::::::::::::::;zz*##*:::::::::::::::::::::::::::::::::::i+;;;::::::;;;;;;;;;i;i*i;;;;;;;;;;;;;;iii;;;;;;;;;;;;;;;;;;;;;iiiiiii
:::::::::::::::::::::::::::::::::::::::+*zi;;:::::::::::::::::::::::::::::;;::::::;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i;;i;;;;;;;;;;;;;
::::::::::::::::::::::::::::::::::::::::;;;:::::;ii;;;::::::::::::::::::::;i;:i*;ii;::;;:::::;;;::;;;;;;;;;;;;**i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
:::::::::::::::::::::::::::::::::::::::::::::;;:;;;;ii;:::::::::::::::;:::;:::::;;;;;;;;;*+i;;:;:::;;;;;;;;;;:+M+*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
::::::::::::::::::::::::::::::::;::::::::::::+x*i:::;::::::::::::::::::::;:::::::::;::;;;;iii;;;;;;;;;;;;;;;;;;;;;i;;;;;;;;;;;;;;;;;;;i;;;;;;;;;;;;;;;
:::::::::::::::::::::::::::::::::;::::::::::::;;;::::::::::::::::::::::;;:::::::::::::;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii;;;;;;;;;;;
::::::::::::::::::::::::::::::::::::::::::::::::::::::;;+#*;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;z+;;;;;;;;;;;;;;;;;;;;;;;;;;;iii;;;;;;;;;;i;;;;;;;i;;;i
:::::::::::::::::::::::::;::::::::::::::::::::::::::::::**;**;;::::::;iz*;;;;;;;;;;;;;;;;;;;;;;;;ii;;;;;;;;;;;;;;;;;;;;;;;;;**i*nn#*i;;;;;;;;i;i;iiiii
::::::::::::::;i;:::::;;i;::::::::::::::::::;::;;:;::::::::;::;:::::;;;i*i;;;;;;;;;;;;;;;;;;;;;;;ii;;;;;;;;;ii;;;;;;;;;;;;;;;;;;;i**++*;;;;;iiiiiiiiii
::::::::::::::::::::::::::::::::::::::;:::::::;::ni::;:::::::;;::::;+xMMz##;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*++##+i;;;;;;;;;;;;;i;;;;;;;;;;;;iiiiiiiii
:::::::::::::::::::::::::::::::::::::;:::::::::::;;i;;::::i;::::::;;::;;i;;;;;;;;;;;;;;;;;;;;;i;;;;;;;;;;;;ii;;;*##;;;;;;i;;;;;;;;;;;;;;;;;;;i*nxn+ii#
:::::::::::::::::::::::::::::;::::::::;:::::;::::;i*i;::::::::;:;;;:;;;;;;;;;;;;;;;;;+nn#*iii;;;;;;;;;;*nxW@@M*;;;ii;;;;i;;i;;;;;;;;;;;;;;;;i+WW+*#ii*
::::::::::::::::::::::::::::;::::::::::::;:;:::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;i+zMWMi;;;;;;;;;;;**iii;;;;;;;;;;;i;;;+nnnnnz+;;;;;;;;;iii;;iiii
:::::::::::::::::::::::::::::::::::::::;;::::::::::::::::;;;;:;;inz*+*;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii;;;i*##zn*;;;;;;;i;i;iiiiiii
::::::::::::::::::;:::::::::::::::::;i;:::::::;:;::::::::::::::#W@xn+;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+i;;i;;;;;;;;;;;;;;;;;;;;iiiiiiii
;::::::::::::::::::::::::::::::::::::::::::::::::::::::;i:::::i@WM+#;;::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii;;;;;;;;;;i;ii;;;;iiiiiiiii
;;;::::::::::::::::::::::::::::::::::::::::::::::::::::*i;;:::inzi;i:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii*;;;;i;;;;;ii;;;i;;;iiiiiii
;;:::::::::::::::::;::::::::::::::::::::::::::::::::::;;ii*;::;i*i;ii;i;;:::;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii;iii*ii;;;i*ii**ii*
:;;;;:;::::::::::::::::::::::::::::::::::::::;::::::;;;;i+*i:;i;i;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i*z*ii;;;;;;;;;;;;iiiiii;;izM#+*++*iiiiii#
;;;;;;;;:::::::::::::::::::::::::;;;;::::::;;;::::::;;;;;i*;;;;;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii;;;i*i;;;;;;;iiixW@@WWM#ii*+#+*iiiiiiii
;;;;;i;;;;:::;;;:::::::::::::::;;;:::::;::::;;;:::;;;;;;;;;;;iii;;;ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*++*iiii;;;;;;;;;;;;;;;;;;;iizzz##z+i;;;i*+#+iiiiiii
;;;;;;;;;;;;;;;;;;;:::::::;:;;;;::;;;;;;::;;;;;;:;;;;;;;;;;;;;i;;;;i**;;;;;;;;;;;;;;;;;;;;;;;;;;;x@@WMxMMz;;;;i;;;;;;;;;;;;;;;ii;ii*i;;;;;;iiiiiiiiiii
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;izi*iii;;;;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;*++i;;;;;;;;;;;i**i;;;;;;;;;iiiii;;;i*nnn+iii*iiiiiii
;;;;;;:::;;;;;:::;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;ii;;;;;;;zW#*ii**i;;+i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ii;iiii;***zxW@z;;;;;i;;;i;;i;;iiWWxWMiiii*iiiiii
;;;;;;:;;;;;;;:;;::;;:::::::;::;;:;;::;;;;;;;;;;;;;;;;;;i*ni;*;;;i;;;;i;;;;iii;;;;;;;;;;;;;;;;;;;;;;;;;;;ii;ixWW@W@x*;;;;;ii;;;ii;iiizz*iiiiiiiiiiiiii
;;;;;;;;:;;;;::;;::;;;:::::::::;:;::;;;;;;;;;i;;;;;;;;;;;iiii*i##ii;;;;;;;;;;;;;;i+znnz#+*i;;;;;;;;;;;;;;;;;;+xWn*i;;;;;;;i;;;;;iiiii#*i;;iiiiiiiiiiii