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