....,,,************************************************************************
....,,,,************************************************************************
....,,,,,,,,*************************************/******************************
........,,,**************************,,,,,,,,,.*,.,/,*###( .,*******************
.....*#########(*****************,,,...... .*..((((########%((#(**************
. ..,,...,(/.,##,*##.*#(...*#(,*##(((#####/*************,,,,... *,,((((############(((#/************
..(#*.(#/,##//##,(#/,*#(./#/./#/...(#/ .......####/,*****,,,,,,,,/####(*,. .*((###%%#########((#&*************
..##,.##,,##,,##,##//##/,##*.##*...##, ......####*,,,.... ,#(&%&&%%##(########%#%############%/*************
..##..##,,####/,*##//##*,##,,##,..,#(. ......(###(...... #(%%#%#%&&&&&&%###########(#%#/&&%%(((((***********
.,##.,##.*#(..../#/.,##,*#(./#(//*/####/,,,,####/... (##&####%%%&&&&%####(/***/(#,. ,&@@@@@@@@@@@@%*******
....#####,.(#/....(#*./#/./(*.***,,.........*####*.. *#(%#######%%#&&####((##***/#. .@@&@@@@&&&&%%@@@@&***,,
,*.*/.,(*./(,.*%##,....,(###(.. .((#%#####%%##%%###########/*(. &@@&@@@&%#####%&@@@@%*,,,
....*%###/.,##/.,##/,.##.(##,#/.##......./###(... /((((%%####%%#############(*//#.*@@&@&%@##&%%%%%#&&&@@%,,,
../#,,#/.((((.##...,#(.#(#/#*/#/(##,,*####((((###*. ((((((((%###%%#########(*****/(((@@@@@%%%#&%####%##@%&@#...
....####*./#*((,##...*#/,#*/##,/#/,#(,/############,. .(((((((##%%%##(#%####(*/(#(/###%@@@@@&&&##%%%%%##&&%@@&...
....##,#(,#(,(#,###(,/#*/#,.##,./###*,///***,,... ,&((((((#####(#%######/(#(######%#@@@@@@@@%###(##&@@@@&,.
........(/.**,,.... ,&&@#(((###############(########%%&%&@@@@@@@%&&&&&@@@@&.
......... . ....... %&&@(#(((############(########%&#(/ #@@@@@@@@@@@@@@&,
.......................................... . .%&###((/###################%&%,#( ,(&@@@@@%#*.
,,,...........,*,,***,..................... **,,,,,,*#(########((#%%&(/(######%%&*(&/,,,******,,,.,(.
,,,,,,,,,.....*,,*,***....,,,,,*#*/, #@/ /.,,,//,((####%###(#&/..,&%&&@&%%#%%%#%***********/(*... ,(
,,,,,,,,,,,,,,**/*****,,,,,,,/@% ,&##% .@@. ##(. .(##%%#####&# (@@@&@@@@@@@@##********//**((*,,... .,(((
,**,,,,,,,,,,,,,****,,,,,,,,,, @@.,/,&@. .,,,,...... /(########@@ /@@&@@@@@@@@@@@@@(*************,,**......./(((((
**********,,,,,,,,,,,,,,,*,***&@* (&(%( /@%,,,,,,..... ,((#####%@&%@&@@@@&&&&&%@@@@@@%******/(/*****,,,,,,*((((((((
******************************, .@&.,(*********,,,,.... /(((((%%, &&@@@&%(#####%&@@@@@******************/((((((((((
*********************************/&/*************,,,,...... .%#/(. .@@&%&##&%%%%%#%@&@@@***************/(((((((((((((
**************/(####%%%%%%%%###((/&%**********************,,,,... ,@@&%&#&&####%##&%%@@************/(####(((((((((((
******/(%%%%%%%%%%%%%%%#****(%%%%%&&%%%%(/****************//*,... &@@&&%#%%%%%##%&%@@@**********(#######(((((((((((
**(%%%%%%%%%%#########**,,.***#####%%%%%%%%%%#/*****/(%#/*,,,,.... (@@@@@&#####%&&@@@&(******/(##########(((((((((((
%%%%%%################/******/##%##%%######%%%%%%#/********,,,,,... ,@@@@@%%&&%&@@@@@*****/(############((((((((((((
%%##########%%%%#######/****(%######&%###%%%####%#**/(******,**/*,... ,&@@@@@@@@@@%/***(###############(((((((((((((
########%###########################%&##########***,,**#%(******,,,,.........,/(((/***/(################(((((((((((((((
%%#######################%%#######%%%&%#######%#**,*,,*/%%%%#(*******************//(##################(((((((((((((((((
##############%%#####################%%#########/*****/%##%%%%%%%#//********//((####################(((((((((((((((((##
%%#############################%%#####&%############%#########%%%%%%%%%#//(######################(((((((((((((((((#####