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