////////////////////////////////////////////////////////////(///////////**////****/////////////////////////////////////////////////////////////////////////////////**,***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////////////////////////////////////////////////(///(((///*********/////////////////////////////(((/////////////////////////////////////////////////*,*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////////////////////////////////////////////////////////***********////////////////////(////////((/((((/////(///////////////////////////////////*******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
/////////////////////////////////////////////////////////////////*/**,***///////(///////////(((((/(/////((((///(////(((/////////////////////////////////******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////////////////////////////////////////////////////************,,*////////(((((((((((((((//((////(((//////////(/////////////////////////******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
/////////////////////////////////////////////////////////////***/*,,,,,,..,*****///**///**,,,*//((//****/(/////**//////**////////////////////////*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
/////////////////////////////////////////////////////////////***,,,,,,,,,,,,,,,,*****/////((/////*///((//**///////*************///((/////////******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
/////////////////////////////////////////////////////////*******,,,,,*,,*****//((((((((#(####((((((///((/(//**//(////**,,,***,,,,**/////////***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////////////////////////////////////////////***,,,**********///(((########################((((///////*///***,*,,,,,,,,,,,*/////******,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
////////////////////////////////////////////////////**,,,.,,,**//////(((((#############################(((///////////**,,,,,,..,,,,,,,**//*********,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////////////////////////////////////////***,....,*/((((((#(####################################((/*/(/////////*,,,,,,...,,.,**///********,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////////////////////////////////////*///*,....,*/((((((##(#######################################(/**((////*/////*,,.,,,.....**////*****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
///////////////((//////////////////////////////////*,,,,,*/(((((((############################################(/*/((((//*////**,,,,......**/////****,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
/////(((//////////////////////////////////////////*,*,,*//((((((###############################################(///(((((//**//***,,,,,... ,**/////***,,,,,,,,,,,,,,,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
/////////////////////////////////////////////////**/*,*//((((((#################################%###############((///((((//***/***,,,,,.. .,**//*//*/*,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
(((((((////////////////////////////////////*/*//////**///(((((####(##(#####################%%%%#%###%############((///((((//***/***,,,,,,...,***/////**,*,,,,,,,,,,,,,,,.,,............,,,,,,,,,,,,,,,,,
(((((((((((((((((((((//////////////////**************/*//((((((######(##################%%#####%###(((((((((((((/((/////(((///**/***,,,,,*,..,*****///*****,,,,,,,,,,,,..,,.........,,,,,,,,,,,,,,,,**//
(((((((((((((((((((((((((((//////////*,********,******////((((((###############################(((/((((((((#######(((////(((((/**/**,,,,,,,,..,*/****//*******,,,,,,,,,,,,,,,,,,,.,,,,...,,,,,,**///////
(((((((((((((((((((((((((((////////*,,,,********,,****///((((((((##########################((////////((((############((//////(((///****,,,**,..,****/*//*********,*,,,,,,,,,,,,,,,,,,,,,,,*/////////////
(((((((((((((((((((((((((((//////*,..,,*******,,,,*,,*///(((((((#(####################((((////*//((((((((((((((((((((((///////((((//*,,*,,,,*,.,,****/*//********,*,,,,,,,,,,,,,,,,,,,,*,*///////////*.
((((((((((((((((((((((((((((///*,....,,,******,,,,*,,*///(((((((#####################((((/////((((((#(###((((((((//(((((///////(((((/*,,,*,***,.,,**,***////*******,,,,,,,,,,,,,,,,,,,*,,*/////////*.
((((((((((((((((((((((((((///,,......,,,*******,,,,,,**///(((((((#####((((((((((######(((((/////(/**//((##(/**,,*/(((((((((/////(((((//,,,*,***,,,,****/////******,,,***,*,,,,,,,,,,,,*****/////(/.. .
((((((((((((((((((((((((((*,.........,,,*//****,,.,..,*//((((((((((((///(((((((((#######(((////*/((//*,....,***/(#########((////((((((/*,,******,,,,*,**////*******************,,,*,,,*,***//////.. .*(
(((((((((((((((((((((((/*,...........,,,*//****,.....,**////*******,,,,****///((((######((///**/*,*//*,,,,//((((###########((////((((((/*,,***/*,,,,*,**//////****************,,***,,,,,,**/////, ,/(/
(((((((((((((((((((///*,.............,***//****,.... .,*,,,*******************//((#######((((/***///(((///((((###############(/*//((((((/*,*////*,,,,,,**////*/********************,,,*****/////. ..////
(((((((((((((((((/**,,*,,,,,,,..,..,,*,*//*//*,,.... .,,,**///(((((/////***,,,,*/(############((((((((((#####################(////(((((//*,*////,,,*,,**//***//*****************,,,,,,,,***///*..,,(/*/
(((((((((((((((/****,,*****,,,,,,*,,.,**////**,,.... .,*///(/((((((((////**,,,,*((###################(#######################(/*/((((((//*,////*,,,,,****//**/*****************,,,,,,,**,*////. .,/*/(
(((((((((((((/******,,***,,,,,**,*...,,*/*//**,,..... .,*///////////(((/*,..,,.,*/(###########################################(////((((((//*,//(/*,,,,,***/*/**/*******************,***,***////*... ,//
(((((((((((//*******,,*,**,**,..,,...,,***//**,....... .,,*,,*,,*/*,.......,*///*/((###########################################(///((((((///**/((/,,,,,****///*//*******************,,******///*. ..
((((((((((//********,,,,,*,,..........,**//**,,... .,,,,......,*/***/((///////(###########################################(///(((((((*/**//((/,,,,*/**//////***************************//*,
((((((((((//********,,*,,,*,...,......***//*,,.... ,,,,,,..,,*///////(((((///(###########################################((/((((((((/****//(/*,,**/**///////***********************,*****.
((((((((((/*********,,.,*..,,.........***/**,*,..... .**/////**///((((((((((/(((####################((((((#################((/((((((((/*****//(/*,**//**/////////*********************,***,
((((((((((/*********,,,,,,,,,,,,,....*******,*,.... *//(((((((((###(##((((/((#########################((((##############(((((((((#(((**,**/*//****//**///////////********************,**,....
((((((((((/*********,*,,,,,,,,,,,,,,,******,,,,,.... . ,//(((((((#######(((((//(((######((((((((((((#######((#(((((########(((((((((((((/,,***/*//****//**/*/////////*******************,,,**,,,,,,,
((((((((((/********,,****,,,,,,,,,,,****/***,,*,,..... ...*///(((((#######(((((/***//(((((((/***/((((############(((((((#####(((/(((((#(((/*,,*/**,*****//*****////////********************,****//////
((((((((((/********,,******,,,,,,,,****/*****,**,,.. .. ..,*///((((((((((((((((/***,,**////(((((((##################((((((###((/(/(((((((((,,,,*/*,,****/(/,*****//*/*///********************//(((((((
((((((((((/*****/**,,*****,,,,,,*,**********,,***,,.. . ,*///((((((((((((((//**,,,,,****//((##################(((((((((#(((/(//(((((((((,,,,,//,,,****(/*,*****//*/*///*******************/((((((((
((((((((((/********,,******//***,,***********,,***,,,.. ,*///(((((((((((((////******/////(((################(/////((((((((/(////((((((/.,,,,*/**,,***//*,,*****////*/////****/**********//((((((((
(((((((((/*****.,***********,,,**************,**/**,,,... .,**////(((((((((///////////(((((((((#######((((////(##(((((((((((((////((((((*.,,,,**/**,,**///*,,*****/////**/////*/*******//**/((((((((
(((((((((/*,..,,,**,**,,****************/**,**,*/***,,,..... .****//////////////////(((((#((#((((((////////(((######((((((((((((////((((/...,,,,***,**,,*//*,,*,,****////////////******//*/*/((((((((
((((((((*..,,.,,,,,,,*****************/*/*****,,//***,,,,...... .,****///////**///////////*/*//////////((##((((###(##(((((((((((((*///((((*..,**,,*/*,***,*//*,,,*,*****//////////******//****//(((((((
(((((((((/**,,************************/**/*****,////****,........ .,****///////****,***,,,,,,,,,***//((###(((((#######(((((((((((((**//(((/,...*,,,*/*,*****///,..,,,,******////////******//*/*//(((((((
(((((((((/*,,,,,*********,**,**,******//////***,*////****,......... .,****//((((//*,,,,,.,,*//////((/////(((((((#((####(((((((#((((//(/((*,,,.,*,,,*/*******//(/,.,,,,,******///////*******/***//(((((((
(((((((((//***/***********,,,,,,*,*****/////***,*/*****,**,,,..........,,***//((((//*****,,*******//////(((((((((((####((########((//(//*,,,,,,,,,,*//**,,***///,,..,,,,,*******///////****/*/**//((((((
(((((((((////////////////////////////////((//*,*,******,,*,*,.,,.........,,,***/(//(//****,,,*******/***////((((#########(#####(((((///**,,,,*,,,,,///**,,***///*,,,..,,,,,******//////****///*///((((((
(((((((((((((((/////////////////////////(((///*,*******,,*,**,.,,,..,.... .,,,,****////*****,,,,,,,****///((((###########(###((((((/***,*,,,,,,,,,,//****,,***///*,,...,,,,,,******/*/**////***///((((((
((((((((((((((((((((((((////////(//////(((//////********,,,***,,,,,,.,,,,.. .,,,,*****************///(((##################((((((//******,,,,,,,,.,//***,*,,***//*,,,,,,..,,,,**,,******/**////////(((((
((((((((((((((((((((((((((((/////////(##(((///***//*****,,,****,,,*,,,,,,,,,.. ..,,,,**********///(((((#################(((((///*********,,,,,,,.,*****,*,*,***//,.,,..,,..,.,,**,,,****/*////////(((((
(((((*,. ...... .*(####((//*****///****,,*****,,***,,,*,,,,... ..,,,********///(((((((########(#((((((////////*********,,,,,..****,,***,****/*,,.,,..,,,...,,,*,,,,****/***///(((((
. . ... ..../(#####((/***,,,,*******,*****,,,***,,**,*,,,,... ..,,,,,******//(((((((((((((((((///////////*********,,,,,.,****,,**,*,***//,,,,,,,,,...,.....,,,,,,,*****//(((((
.. . ... .....,(#######((///*,,,****,,,********,,,*******,**,,,,.... . ..,,,******/////**////****//////////////*********,,,,,,,**,,,*,******/*,,,,,,,*,,,,.........,,,,,,,**//((((
.. . ...,*#########((///**,,,*****,.,,,*,***,,************,,,...... ..,,,,***********////////////////***********,**,,**,,,****,****/*,,.,,*,*,,,,,,,,,,.........,,,,*/((
............... . ....,(#####%####((///***,,*/****,,,,******,,*///********,,,,..... .. ...,,,,********//////////////////************,,**,,,,****,*****,,,,,,,,,,..,,,,,,,,,,,.......,,,,*
............................*#####%%######(///*/*,**/*******,*******,**//**********,,,,...,......... ....,,,********//////////////////**************,*,*,,,,***,****/**,,**,,*,,,,...,,..,,,****,,,*,,,,
.................... .....,/#####%%#######((//*/*,**/************,***,****/*********,,,,...,,,...........,,***//////////(//////////////***/******/**,,,,,*,,***,*****/********,,,,,,,,,*/**///(//**,,,,*
............... . . ....,(###%%%%%%%%####((////*,***/***/**///*************,********,,,,.....,,,....,...,,,***///////////////////////****//*///*/**,,,*,***,*********/(((((((//**,,,,*****///**((#(/***
............... .,/###%%%%%%%%%######(///**,***//**/*/////**/*,********,*******,,,,,,.,,,.,*,...,,..,,***/////////////(////////**/////////////*,,********//*,***/(########((///,,,,,,**,**(###(//*
. ..*#%###%%%%%%%%%%%%###((///*,***//****///(/****,*,******,,*,*,***,,,,,,,,,,,,**,,,,,.,,,***/////((/////////////////////////////********(/**//*****(####%#####(##(*,,,,,*/**/((((((/
. ../##%##%%##%%%%%%%%#%##(((//*,**///*/*//(((/*/*/**,******,,,*,,***,,,,*,,,,,,,*,*,,,*,.,,,**///////((//((//((/////////////((((((**,,***/##/**/(****/####%#######%(/,,,,,,,**/(#(#((#
.*###%######%%%%%%%%%#%##(((///***///*/*/((((/*/****,****,,,,,,,,*****,,,,,,,**,,**,*,,*,,,,**/////(((((((((((////////((((//((((((**,,**/(###/***(//**(###%%####%%##(***,,,**/*/(#(((#
,/##%#%%%%%%%%%%%%%%%%%%###((///*,**//*/(####(/***********,,,,,**,*/****,,*,,,,******,,,**,,,,*//////((((((((((((////((((((((((((((***,**/###(%/***//(**(##%#####%%%#(/**,***,,/*(((((#
,(###%%%%%%%%%%%%%%%%%%%%%%##((/*/***///*/(####(/***//**,,,*,,,,,,*,******,,,*,,,*******,*****,****/(((((((((((((((//(((((((((((((((/***,**/(#####/***//**/##%####%%%##(/*****,.,**((((%%
.(###%%%%%%%%%%%%%%%%%%%%%%%%##((///***///**(###(//****/**,,,**,,,,,,,*******,**,,********************/(((((((((((((((((((((((((((((((/*//,**/(######/***//**(#####%%%###(/***,,.,,**(((#%%
,(#(//*/#%%%%%%%%%%%%%%%%%%%%%###(////*,***/**(##((/****//**,,,,,*,,,,,,,******,**,,,********,*****/***///((#(((((((((((((((((((((((((((/*/*,*//(#######****//*/#####%%%###(*//*,,,,,**/(#%%%
*/***///(((((#%%%%%%%%%%%%%%%%%#//////*****/**(#((/*****//*****,,**,,,,,,******,***,**********,***/*//*///((##(((((((((((((((((((((((((//*/***//((######(*****//(#(#%%%###((//*,**,,,**/#%%%%