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