;;;;;;;;;;;:::::::::;:::::.....::;;;:::;;;;;::::;:;:::::.....:::....:::::::::::::::::::::::::..::::::::.........::::::........::::::::::::::..............::::::::::::;;;;;;;;;;::::::::::::::::::::::::::::::::::...::::....:;;;;;;;::::::::::::::::::::::::::::::::::::
:::....::;;;;;;;;;;;:::::::;;;;;;;;::::::::;;;;;;;;;;;;;::::::::.....::::::;;::;;;::::::::::::::::::::::::::.........:::::::::::::...................:::::::::::::::;;;;;;;;;;;;;;;:::::;;;;;;;;::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;:::::::::::::::::;;;;;;;;:::
:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;:::::::::::::::::::;;;;;;;:....:::::....:::::........::::.......................,,,,,,;;;,,,,,,,:::::::::::::::;;;;;;;;;;;;;;;;;,,,;;;;;;;::::::::::::::::::::::::::::;;;;;;;;;;:::::::::::::::::;;;;;;;;;;;;;;::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,::;;;;;::::::;;;;;:::::::::::::::::;;;;;;;:::::::::::::::::::::::::..........................;;;;;;;;;;;;;;;;,,,,,:::::::::::::::::::::;;;;;::::::::::;;;:::::::,,,,;;;;;;;;;;:::::::;;;;;....::::::::::::::;;;;;;;;;;;;;;;;;;:::::
::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;::::::;;;;;;;::::::::::::::::::;;;;;;;;;;;;;;;::::::::::::.............::::.......................;;;;;;;;:::::::;;;::::::::::::::::.;;;;:::::::::::::::::;;;;;;;;;;;;;;;;;:::::;;;;;;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;:::::::::::::;;;;;:::::;;;;;;;;;;;;:::::::::::::::::::::..........................;;;;;;;;;;;;;........;;;::::::::::::::::::;;;;;;;;;;;;,,,,,,:::::::::::::;;;;::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;::::::::::::;;;;;;;::::::::;;:.....:;;;;;;;:::::::::,,,;;;;::::..................;;;;;;;;;;;;;;......::::::;;;;;:::::::::,,,,,,,,,,,,;;;;;;;;;;;;;:::::::::::;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;::::::;;;;;;;;:::::::::::::::::::;;;;;;;;;;.......;;;;;:::::::;;;;;;;;;;;;:::..................;;;;;;;;;;;,......:::::::::;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,::::;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::......
;;;;;;;;;;;;;;;:::;;;;;;;;;;;:::::;;;;;;;;:::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;::::::::::;;;;;;;;;;;;;;;:::::............;;;;;;;;;............:::::::::;;;;;;;;::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::.......
;;;;;;;;;;;;;;;;:::::;;;;.........:;;;;;;;;;;;::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:......:;;;;;..............::::;;;;;;;;;;;;;;;;;;::::::;;;:..........;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;::::::::::::::........ ___
::::::;;;;;;;;;:::::::::::::::::::;;;::::::;;;;;:::::::::::::;;:::;;;;;;;;;;;;;;::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......;;;;:::::::::::::::::::::;;;;;:::::;;;;;::::::;;;:......:::;;;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;:::::......... /;;;;;;;;;┃
::::::::;;;;;;;:::::::::::::::,,,:::::::::::::::;;;::::::::::::;;;;;;;;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::;;;:::::::::;;;:::::;;;;;;;;;;;;;;;;;;;;;............;;;;;;;;;;:::::::::::::::::::::::::::::::::::::;;;;;;;::............ ┗┓;;;┃
;;;;;;;;;;;;;;;;;;;;;.........;;;;;;;;,,,,,,,;;;;;::::::::::;;;;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::;;;;::::;;;;;;;;;;;;;;;;;;;:::::::;;;:::::::::;;;;;;;;;;;;;,,,,,,,,,,,,,,,:::::::::::::::::::::;;;;:::::,,,,,,  ̄
::::::::;;;;;;;;;;;;;;;::::::::::::;;;;;;;;:::::::::::::::::;;;;;;;;;:::::::::;;;:::::::::;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::;;;;;;; ┏━ ━┓ へ/l
::::::::::............;;;:::;;;::::::::;;;;;;;;::::::::::;;;;;;;;;;::::::::::::;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;::::::::;;;;;;;;:::::::::::;;;;;;;;;;;;;::::;;;;;;;::::::::::::::::::::::::::;;;;;;;,,,,,,,,;;;;;;;;; ‡__ | };;;;;;;;; ノ
:::::::::...............;;;;;;;;;............;;;;,,,,,,,;;;;;;;;;;;;;;,,,::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::,,,,,:;;;;;;;::::;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::,,,,,,,;;;;;;;;;;;;;;;;;;;;;;; ┃_| /;;;;;; /
:::::::::................;;;......................;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::;;;;;;;;:::::::::::::::::;;;;;::::::::::::::::::::::::::::::::::,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ┏┓ ┃;;; /
:::::::::::::............;;;...............,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.........;;;;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;;;;;::::::::::::::::::::::;;;;,,,,:::::::::::;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;:::::::::;;;;;;:::::::;;;;;;;;; † / ゝ"
:::::::::::::::;;:::::;;;;;,,,,,,,,,,,,,;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;::::::::::::;;;;:::::::;;;;;;;:::::::::::::::::::::;;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::;;;;;;;;;;;;;;;;; ┏━ ━━i
::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;;;;;;;;.......:::::::::::;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;:::::::;;;;;;;;;;;;;::::::::::::::::;;;;;;;;;;;;;;;;;;;:::::::  ̄ ̄ ̄ _____
:::::::::::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;:::::;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;,,,,,,::::;;;........;;;;;:::::::::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;::::::::::;;;;;;;;;;;;;;;;;;:::::::;;;;;;;;;;;;;;;;::;;;;;;;;;;; 〔_ _〕 __ __
,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,:::::::::,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...........:::::::::::::::::::::;;;;;;;:::::::::::::::::::::.........::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;::::::::;;;;;;;;;;;;;::::::::;;;;;;;;; ┃ 〉 〔____:::::::Y └┐」
;;;;;;;;;;;;;;:::;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........:::::::::::::::;;;;;;;;;;;;;:::::::::::::::..................::::;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;.........;;;;;;;;;;;;; ┌┐  ̄ : |::::| ┐
;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::........::::::::::::::::::;;;;;;;;;;;;;;:::;;;;;................:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;; ┏┛ └┐ し' i┘└!
;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::;;;:::::::::::::.......:::::::::::::::::::;;;;;;;;;;;;;;;;;:::::::::::.......::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::;;;;;;;;..........;;;;;  ̄ ̄ ̄ ̄ __「::::|_  ̄ ̄
;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;::::::::::::::::::::::::::::::::::::.........:::::::::::::::::;;;;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::;;;;;; (:::::::::::::::::::ノ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:...............::::::::::::::::::::::::::............::::::::::::::;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;::::::::;;;;;;  ̄ ̄ ̄
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::........::::::::::::;;;;;;;;;:::::::::::::;;;;;;;;:::;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;::::::::................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;
;
;'., ;'
,,;::'" ;,:;
'";. ,;: :;, , :; ;:'; ;
,;' ;: .; ;:;'";:, ,;:' ;: :
;':,.,;; ;:' ,;:,;' /⌒i .:' .:'
,;:' ; ,:;' ィ ,;:', / ハ ;'. .; ; ;.
,;: '/./ ,;: .:; ./i / } ;,,.::..; :,
/ / i,:; ,:;. '/ ! / リ ;:.. ;:; ,.:'.,.:;'
/ゝ-' / ./ / ゝ' { / ,;:...:::;:;'',.,.;:;' _
,;:''':.,,/''":,. ,' / ,:;.., ,;:;'"_ /::::::::::\
,.:; /;:;, , !' { , .:;:' / ト、 /:::::::::/\:::::\
'";/ ; ;:. | | ,:;'" ,.:; { 人_i /::::::::::/ \::/
{.:;'" .;' | ,' .;:::::., i/ } ,; |:::::::::/ ,、 ,、 ,、
/}\ | ,.;::; :;;;..:;;,:} / ,: `¨¨´ /:::l /::! /:::l
\ \ | ,..::;;;';{ ,;: ':;;'/ :./ i´\,.;.: ,、______ 弋リ 弋リ 弋リ
`ヽ \ `!.;:'' ∧_;:'___/ / ;.ヽ / `ヽ ノ:::::::::::::::::::::::::::::::::::::/
} Ⅵ / ;' / / ,;:'":;,/ /, )::::::::::::::::::::::::>' ¨゙゙
--へ_ |i / / ./--一 ;:; i , `´ ̄ ̄ ̄
';:,.,,;:`丶__ __/ _;.; _! ;
;,..::., '':i ̄\ // -― / ;:;'" ;'
゙':;..,,:;/ \ ゙:;.,,. __/ .:;' ,:; ,:;'" ,:;' ,
/ ヾ:,,,.:/ ,,.::''" ,;:;'" ,.:; ;;
/ /:.,.:.,,, ,,.: ,:;:'