/::://:::::::::::::::.::.:::::::|:::::::::::::i:i:::::::::::i::|:::::::|::::::::::::::::::ヽ
/::::://::::::i:i:::::::::::|:|::::::::ii:::::::::::ii:i!::::::::::',:|:::::::|:::::::::::::::::::゙,
//:::/::::::i::::::|:|::::::::::ii:i:::::::::゙,,::::::::::|i ii、:::::::::|::::::::|::::::::::::::::::゙,
//::::i:::::|:|:::::::|i:ii:::::::::゙,',',',::::___ニ--ゝ-==ミ:_|::::::::|:::::::::::::::::::|
/ii:::::::i:::::i:ii:::::::i゙、゙、、,,ゞ゙ ゙゙゙~ __...........__ .|:::::::::i:::::::::::::::::::i
| ||::::::i:::::i::ii:::::_、-ー ''/!!!i`~`゙;;ヾ|::::::::::i~^`、:::::::::i
`ii i:::::|i::::iヽ/ ,,.::::::: ^ i|||ii;;;;:::i} |:::::::::::i^:: i:::::::::゙、
゙、゙、::゙、、ゝ //i||~~^: ゙、ii::::::::i |:::::::::::゙/ /:::::::::::゙、
゙/ |:\ ヨ゙iiii:::::i゙、 >ー"~ |::::::::::::゙/::::::::::::::::゙、
|:::::\' ゙、;;;;;;;i .|::::::::::::゙、:::::::::::::::::゙、
|::::::::::゙、 >"~ ヽ _..--.. |::::::::::::::゙、::::::::::::::::゙、
i~゙゙゙゙、i:::::::::::::゙、 ゙、/^| /.i:: ::::::::::::゙、:::::::::::::::::゙、
\ \::::::::ii:^-、_ ゙'''' / i::::::::::::::::゙、:::::::::::::::::゙、
゙、 ゙、::::i:i::::::::i~^'--.......______::^~__...--~.i:::::::::::::::::゙、:::::::::::::::::゙、
゙、 ゙、:::||::::::::|::::::::::\:::::::::|;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::::::\::::::::::::::゙、
/^~~~~゙\.--、:::|゙、::::::::::::::__/フ;;;;;;;;;;;;;;;;;;;;;;;;゙、::::::::::::::::::::\::::::::::::::゙、
ノ --..-^~ i::i \_..-^ /;;;;;;;;;;;;;;;;;;;:/ ゙、::::::::::::::::::::::\:::::::::::゙、
( ゙、___...- i:i/^ /;;;;;;;;;;;;;;;;/ ゙、::::::::::::::::::::::::\:::::::゙、