/(///#&&&&&&///(##%%%&&&&&&&&&&&&&&&&&%%%#%####%&&&&&&////(//(///////////(#&&&&&&&&&&&&&&/*(%((/(#((#////(%%%##%%%%#((//(##(/*/*(#(/%%%%%%%%%###
/(//***/*/%&&&&&&&&((//(//////((///(%&&&((/((//(((#(/(//%&&&&&/**/////////*//(#&&&&&&&&&&&&&&/*(#((/(((#((//((%%%##%%%##(**/######(#/#/*%%%%%%%%####
&&&&&&%(//////%&&&&%///////(////(//(/(/(#(/////(////(/(/////(%&&&&(///*//////(#&&&&&&&&&&&&&&/*(%#((##(##(//(/#%%##%%%##*//((##(#(%#%(//#%%#%#######
(&%((%&&&&&&(%&&&&&&&&&&&&&&%#////(/((/////////////(#(////(%&&%&&&&&%/////(/#&&&&&&&&&&&&&&/*/%#((#####(((#/#%%%%#####(((((/**%#(#(#/*(%#%%###%#(#
*/(///(///((///////*/////*/(&%&&&&&&&&&&&%#(///(////////////////////(&&&&&/(#&&&&&&&&&&&&&&/*(%#((###%#(##(/#%%%%%%##%#(/(((###((#(#(//%%%%%%%##(#
**/(/**/////(////(((////((//*/(%//(/////(%&&&&&&&&&&&(//(#////////////(&&&&&&&&&&&&&&&&&&&&&%//(%#((##%%##((/(%%%%%##((#%((###(####//((/*#%%%##%##(#
(/**/(//////////////*/(((///(////((#(/((((//((/#////(#%&&&&&&&&&&&&#(/////&&&&&&&&&&&&&&&&&///%#((#%%%%%#(((%%%%%&%&&%%%#&%##%##(#(((***%######((#
(/*/***//*(///////////((/(#((//(##(((#/////(/((/((/(((//(((##(/(/%&%%&&&&&&&(&&&&&&&&&&&&&&&&/*/%#/##%%%%#%##(#%###%#&&%%%%%&&&%(%%##(*/(#(####(##
///////*****/***///*/(//((///(/(((((((//////////////////(#(((((//((#(#(((//(/(#&&&&&&&&&&&&&&///%%/#%%%#%#%%#%#%###%%&&%%%&&&&&%%(#(#%%#*/###%%%%###
/////(/***/*/*////////((//(//////((((((//////////////////((((#(//(((((((///(//#&&&&&&&&&&&&&&//(%#/#%%%%#%###(#%%%%&%%%&%%%%&%%#%%(((((#/((%%%#%%%##
*//////(/*/*/*((///////////*/*///////*//////////////////((((((/((/(((((#(/////#&&&&&&&&&&&&&&///%#/########(##((#%%%%#%%%%%%%#####(#%##**#%%%%%###
***//((/(////(///*////*///////////////////((*///////////*((((///(/((((((/////(#&&&&&&&&&&&&&&//(%#/#########%#(#((#%%%%%%%&%&&&&&%%#/*/%/(%%%%%%#%%#
//**/(//**/////////**/(//*////////////////((((////((///////////*/////////////(#&&&&&&&&&&&&&%*/(%(*####%##%%%%#(((%###%%%%%%%&&&&%%#####(#%%%%%%%#%#
*/***//*///**/*/(//**////////((/*/////////((/#//(((((//////*//*//*//(////////(#&&&&&&&&&&&&&%&(*/(%(*##%#%%#%%#(#(#%%%%###%%%%%%&&&&%###((%%####%%#%%%
***//**/(////(*/////**/***/(/*/(//////////((//////((/(/////////(/*//*((//((//##&&&&&&&&&&&&&%&(*/##(*#####%#%%%####%%%%%#%%%%%&&&&%%###/###%%%%%%%%%%#
*/////(((//*(/(/*/////*////*//*///////////(//(//((////////////(*((/////(//(//##&&&&&&&&&&&&&%&(*/##(*(((%####%#####%%%%###%%%&%&&%%%%##((%#%%#/(%%%%#%
*///////**//*/**/////*///////*//////////////((/(/(/////////////**(//////////*(#&&&&&&&&&&&&&%&(*/##(*#####%%%%%%##%%%%###%%%%&&&&&&&%%%#/#%####%%%%(#%
*///****/**//////(/////////////*//////////*///((/(((///////////////////(///**(#%&&&&&&&&&&&&%&(*/%##*###%%%%%%%%%%%%%%%%%%%%%&&&%&%%%%(%/###########%#
#%%%%%########((###((((////*/*/////////((/*/////////((///////////////(//(//**(#&&&&&&&&&&&&&%&(*/%#(*(###%%%%%%%%#%%%%%%%%%%%&&&%%%%###((#((#######%%#
(##(((#(#####%%%%%%%%%%%%%#%##%########(((((((((((((//(///*/////////////((//*(#%&&&&&&&&&&&&%&(*/%#(*(####%%%%%%%#%%%%%%%%%&%&&%%%%%(#/(##(#(####(####
&&&&&&&&&&&&&&&&&&&&&&&%%%%#####(((((((#####%%%#####(#((######%#######(#(((/*/%%&&&&&&&&&&&&%&(*/%((*####%##%%%%%#%%%%%%%%%&%&%%%%((/((%((#(#((###(#
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%#####(((((((########&&&&&&&&&&&&&%&(/#&&&%&&%%####%%%%%#%%%%%%%%%%&&&(%%%(//(###(#((/((((((
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&&&%%%#%#%%%%###%%%%%%%%%%&&%%%%#(//###(###((((((((
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%##(#%#&&#%%%%%#%%%%%%%%%%&%%%%#(((####(((#(((((((
%%%%%%%%%%%&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%####%%%%%&&%####%%%%%%%%%%%%%%%%%##((#####(((#(((((((
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%&%%%%%%%%%%%%%%%%%%%%%%%%&&%&&&&&&&&&&&&&&&&&&&&&%&&&&&&%%%((##%##(###/*##(###%%#%%##############################
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(/&&%#(///%%%#((/(((/***//*#(#%&&&%&##%%########%%%%%%#%%%%%%%%%%%
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#&&&&&%(/******//,,,,,,,,,,****&@&&&%%%&&%%&&&&&&&&&&&&&%%%%%%#%#(
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%@&&&%(//******,,,,,,,,,,,,,,,,,,,**###%/(#((##***/#((,***,*/((((/,,,*
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(//*****,,,,,,.....,,,,,,,,,,,,(%%#((%#(/,*/,/*,*,*(,,/(((/(//,/(
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&///**,,,,,,,,,,,,,,,,,,,,,,,,,,/(&(#((((**(*/***/./((((((#/(/((
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&(/(##/,*,,,,..........,,,,,,,,,,,/#@#*/#((/((**/**,/(//((((((/(((/
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%(//(/**,,,##*,,,,.,,,/##((((*,,,,,/%*(#**//*((////./**,/(/((/(///
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&(/*/#/*/(#,,*(/,.,/,*(#%&(,,/*,,,*/%%/###**/((/(**(/#//**,*(((*.,,/
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%/*****,,,,,*//*,,*****,.,,**,,,,/%%(####/**/(#(//(((/*(/*(,,*,,(.,
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@/%(/***,,,,,*/(*,,***,,,,,,,,,*,*(%#(/%/##((#(#(#((#((((/(((*,/*/,**
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(&&@#(/**,,,,,*/(/*,**,......,,,***(#%%##%###(((##(*(**(##/(/,.,,,/#(#*
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&(///***/**(//,,,***/***,,***///#%##%###(#/*,(#*/#*,,/(.,*,,(#,,*#
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%/**,#%(#%%%%///#%#(/(//***//*/&#%###%#%#//(#(((((,/*//*,,**,*,*,
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#((//**/******,*%/*/(##/#//,,,*%%#%#*/##%####(%*,****@&%%%#%%##%%%#%%%%%%%%%%%%##%###(((((
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(//////*******,,,,,/,,,*&%*/(//,//(*,,,*/(((((###(/..,*,//(&%&&&%&%%#%%#%&%&%%%%%####(###(###%%%%
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((/*************,,,,,,,,,,**/*/&/***,/#//*,*/***/**///*,,,/*(&&%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,,,,,,,,,,,,,,,,,,,,,****/#****,*/((***********,**//(&&&&&&&&%%&&&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,,,,,,,,,,,,,,*,*,,,,,,,,,,,,#******,,*/#/*,,,,,**/((/((/#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//****,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,*************/*//((***//((((///&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,,,,,,,,,,,,,,,,,,*,,,,,,,*,,,*,,,*,,,,*,,***,********//(//(//////&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(//*****,,,,,,,,(%(///******.//////**,,,***,,,*,,,**,*********/(//////////////%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#(//*****,,,,,,,,#((*,,,....,...,,,,****(/,,,,********,*******//*******/////***///#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,*/,,,,,,#(*,........ . .....,**,,*,,*************************////*****/*/%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%##((/***,,**,,**,,,,,//((((###(/.,((#######(,,,,*********,*************/**/////*******//(&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#((/*/***,,....,,**,,*(((/(/##(((,/(#####((((,,,,,*********************/****////*********//#&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&#(///,.............,*#/*//*/(/,##,,*(/#((((/*,,,***,********************/*//*////*********//(&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&%(((//*%/,.,.....,,,...,/(#(**//(##((#(.(####/(#//*,,,,,*************/*/**/**//***//////*****/////(&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&%(((//***%#,,............../##//(((((((#(,##%%##(#((*,,,**,*************////////*///*//////*/**/////(#&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&#((///***,#(..............,//%(*/((/(((((/*##%%%%(%(#*,,,***************///*/**/*///*//////**////////(#&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&%##((////**(%##,,,,,..,.......,/%//((///#*((((#%%%%###(#,,***********************//*////////////////////((&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&%#((///*/#%###(((%,,,,,,,....,,,,,***(((((#((#*##%%%%(#%((****/******,*,*********////////////(/(/(////////(#&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&%####%%%%%##(#(((((/#(,,,,,,,,...,.,*/**(##((/(/**%(%&%/#(#/(**////***,***********/////////////(((((#(//////((#&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&%%############(#(((((((/(/&(,,,,,,,,,,,*,.(%#%###%(/(/(/%*%%%#&/////****************//////////(((((((##////((((##&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&%%######((((((((((((/(/(/(/((%#//*//#&%%&&&(##(%%(#%#.%#((%%%%%&%(////********,*******///////////(((((##/*/////(((#%&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&%%%########(((((/((//(////////(#&&&%(//(#(%&&&(((((%#/((/##%%%%%%&///****,,*,**********//////////((((###////////(((#&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&%%%#####(((((((((//(/((////(&###(((///(((%&&&&&&&&&&&&&&&&&&&&%((/****,,**,,*****/*/*///////(((((####/////////((##&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&%%%%%##(((((((((/////(((#&&%%%####((((///////((///((((///////////////**************/*////////((((###%#((////////((#%&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&%%###(((((((((((((/((##%&&&&%%%#####((/////**/////////*/******///**********,*(#(//(#(/////((##(#%&%#%%#((////////((##%&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&%#%###((((((((#(((####%&&&&&&%#######((/(////////////*(/********************%#(#%#######((#%&&&&&&%#%&%#((////////((##%&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&%###############%%%&&&&&&&&&&%%######(((//(((((////*******************/((///##//*(#%%%#((##%%&&&%%%%/&%%(((///////(((#%&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&%#######%%%%%%%&&&&&&&&&&&&&%%####((#((((((((((((///**************(#*((%%%%%##(#((%%%%###%%%#%&%%((%#((///////(((##&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&(#%%&&&&&&&&&&&&&&&&&&&&&&%%###((((((((((((((((////***********(%%%###((((##%((#(%%%(#%((#((%#%(###%%&%#((//////(((###&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%###(((((((((#((((((((/////////*///%%%#((#(%%%#(/***/((#%##((((/#(((##%#(((#(((//*.,,,#%&&&&(/&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%#####((((((((((((((((((///////////*%%%#%%((#%%%(/*, */##%%(/((((%##%%##//*,,.*,,.......,,,..,**,*(#&&&&&&&&&&&&&&&
/(//***/*/%&&&&&&&&((//(//////((///(%&&&((/((//(((#(/(//%&&&&&/**/////////*//(#&&&&&&&&&&&&&&/*(#((/(((#((//((%%%##%%%##(**/######(#/#/*%%%%%%%%####
&&&&&&%(//////%&&&&%///////(////(//(/(/(#(/////(////(/(/////(%&&&&(///*//////(#&&&&&&&&&&&&&&/*(%#((##(##(//(/#%%##%%%##*//((##(#(%#%(//#%%#%#######
(&%((%&&&&&&(%&&&&&&&&&&&&&&%#////(/((/////////////(#(////(%&&%&&&&&%/////(/#&&&&&&&&&&&&&&/*/%#((#####(((#/#%%%%#####(((((/**%#(#(#/*(%#%%###%#(#
*/(///(///((///////*/////*/(&%&&&&&&&&&&&%#(///(////////////////////(&&&&&/(#&&&&&&&&&&&&&&/*(%#((###%#(##(/#%%%%%%##%#(/(((###((#(#(//%%%%%%%##(#
**/(/**/////(////(((////((//*/(%//(/////(%&&&&&&&&&&&(//(#////////////(&&&&&&&&&&&&&&&&&&&&&%//(%#((##%%##((/(%%%%%##((#%((###(####//((/*#%%%##%##(#
(/**/(//////////////*/(((///(////((#(/((((//((/#////(#%&&&&&&&&&&&&#(/////&&&&&&&&&&&&&&&&&///%#((#%%%%%#(((%%%%%&%&&%%%#&%##%##(#(((***%######((#
(/*/***//*(///////////((/(#((//(##(((#/////(/((/((/(((//(((##(/(/%&%%&&&&&&&(&&&&&&&&&&&&&&&&/*/%#/##%%%%#%##(#%###%#&&%%%%%&&&%(%%##(*/(#(####(##
///////*****/***///*/(//((///(/(((((((//////////////////(#(((((//((#(#(((//(/(#&&&&&&&&&&&&&&///%%/#%%%#%#%%#%#%###%%&&%%%&&&&&%%(#(#%%#*/###%%%%###
/////(/***/*/*////////((//(//////((((((//////////////////((((#(//(((((((///(//#&&&&&&&&&&&&&&//(%#/#%%%%#%###(#%%%%&%%%&%%%%&%%#%%(((((#/((%%%#%%%##
*//////(/*/*/*((///////////*/*///////*//////////////////((((((/((/(((((#(/////#&&&&&&&&&&&&&&///%#/########(##((#%%%%#%%%%%%%#####(#%##**#%%%%%###
***//((/(////(///*////*///////////////////((*///////////*((((///(/((((((/////(#&&&&&&&&&&&&&&//(%#/#########%#(#((#%%%%%%%&%&&&&&%%#/*/%/(%%%%%%#%%#
//**/(//**/////////**/(//*////////////////((((////((///////////*/////////////(#&&&&&&&&&&&&&%*/(%(*####%##%%%%#(((%###%%%%%%%&&&&%%#####(#%%%%%%%#%#
*/***//*///**/*/(//**////////((/*/////////((/#//(((((//////*//*//*//(////////(#&&&&&&&&&&&&&%&(*/(%(*##%#%%#%%#(#(#%%%%###%%%%%%&&&&%###((%%####%%#%%%
***//**/(////(*/////**/***/(/*/(//////////((//////((/(/////////(/*//*((//((//##&&&&&&&&&&&&&%&(*/##(*#####%#%%%####%%%%%#%%%%%&&&&%%###/###%%%%%%%%%%#
*/////(((//*(/(/*/////*////*//*///////////(//(//((////////////(*((/////(//(//##&&&&&&&&&&&&&%&(*/##(*(((%####%#####%%%%###%%%&%&&%%%%##((%#%%#/(%%%%#%
*///////**//*/**/////*///////*//////////////((/(/(/////////////**(//////////*(#&&&&&&&&&&&&&%&(*/##(*#####%%%%%%##%%%%###%%%%&&&&&&&%%%#/#%####%%%%(#%
*///****/**//////(/////////////*//////////*///((/(((///////////////////(///**(#%&&&&&&&&&&&&%&(*/%##*###%%%%%%%%%%%%%%%%%%%%%&&&%&%%%%(%/###########%#
#%%%%%########((###((((////*/*/////////((/*/////////((///////////////(//(//**(#&&&&&&&&&&&&&%&(*/%#(*(###%%%%%%%%#%%%%%%%%%%%&&&%%%%###((#((#######%%#
(##(((#(#####%%%%%%%%%%%%%#%##%########(((((((((((((//(///*/////////////((//*(#%&&&&&&&&&&&&%&(*/%#(*(####%%%%%%%#%%%%%%%%%&%&&%%%%%(#/(##(#(####(####
&&&&&&&&&&&&&&&&&&&&&&&%%%%#####(((((((#####%%%#####(#((######%#######(#(((/*/%%&&&&&&&&&&&&%&(*/%((*####%##%%%%%#%%%%%%%%%&%&%%%%((/((%((#(#((###(#
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%#####(((((((########&&&&&&&&&&&&&%&(/#&&&%&&%%####%%%%%#%%%%%%%%%%&&&(%%%(//(###(#((/((((((
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&&&%%%#%#%%%%###%%%%%%%%%%&&%%%%#(//###(###((((((((
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%##(#%#&&#%%%%%#%%%%%%%%%%&%%%%#(((####(((#(((((((
%%%%%%%%%%%&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%####%%%%%&&%####%%%%%%%%%%%%%%%%%##((#####(((#(((((((
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%&%%%%%%%%%%%%%%%%%%%%%%%%&&%&&&&&&&&&&&&&&&&&&&&&%&&&&&&%%%((##%##(###/*##(###%%#%%##############################
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(/&&%#(///%%%#((/(((/***//*#(#%&&&%&##%%########%%%%%%#%%%%%%%%%%%
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#&&&&&%(/******//,,,,,,,,,,****&@&&&%%%&&%%&&&&&&&&&&&&&%%%%%%#%#(
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%@&&&%(//******,,,,,,,,,,,,,,,,,,,**###%/(#((##***/#((,***,*/((((/,,,*
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(//*****,,,,,,.....,,,,,,,,,,,,(%%#((%#(/,*/,/*,*,*(,,/(((/(//,/(
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&///**,,,,,,,,,,,,,,,,,,,,,,,,,,/(&(#((((**(*/***/./((((((#/(/((
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&(/(##/,*,,,,..........,,,,,,,,,,,/#@#*/#((/((**/**,/(//((((((/(((/
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%(//(/**,,,##*,,,,.,,,/##((((*,,,,,/%*(#**//*((////./**,/(/((/(///
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&(/*/#/*/(#,,*(/,.,/,*(#%&(,,/*,,,*/%%/###**/((/(**(/#//**,*(((*.,,/
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%/*****,,,,,*//*,,*****,.,,**,,,,/%%(####/**/(#(//(((/*(/*(,,*,,(.,
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@/%(/***,,,,,*/(*,,***,,,,,,,,,*,*(%#(/%/##((#(#(#((#((((/(((*,/*/,**
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(&&@#(/**,,,,,*/(/*,**,......,,,***(#%%##%###(((##(*(**(##/(/,.,,,/#(#*
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&(///***/**(//,,,***/***,,***///#%##%###(#/*,(#*/#*,,/(.,*,,(#,,*#
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%/**,#%(#%%%%///#%#(/(//***//*/&#%###%#%#//(#(((((,/*//*,,**,*,*,
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#((//**/******,*%/*/(##/#//,,,*%%#%#*/##%####(%*,****@&%%%#%%##%%%#%%%%%%%%%%%%##%###(((((
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%(//////*******,,,,,/,,,*&%*/(//,//(*,,,*/(((((###(/..,*,//(&%&&&%&%%#%%#%&%&%%%%%####(###(###%%%%
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((/*************,,,,,,,,,,**/*/&/***,/#//*,*/***/**///*,,,/*(&&%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,,,,,,,,,,,,,,,,,,,,,****/#****,*/((***********,**//(&&&&&&&&%%&&&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,,,,,,,,,,,,,,*,*,,,,,,,,,,,,#******,,*/#/*,,,,,**/((/((/#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//****,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,*************/*//((***//((((///&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,,,,,,,,,,,,,,,,,,*,,,,,,,*,,,*,,,*,,,,*,,***,********//(//(//////&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(//*****,,,,,,,,(%(///******.//////**,,,***,,,*,,,**,*********/(//////////////%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#(//*****,,,,,,,,#((*,,,....,...,,,,****(/,,,,********,*******//*******/////***///#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%((//*****,*/,,,,,,#(*,........ . .....,**,,*,,*************************////*****/*/%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%##((/***,,**,,**,,,,,//((((###(/.,((#######(,,,,*********,*************/**/////*******//(&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%#((/*/***,,....,,**,,*(((/(/##(((,/(#####((((,,,,,*********************/****////*********//#&&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&#(///,.............,*#/*//*/(/,##,,*(/#((((/*,,,***,********************/*//*////*********//(&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&%(((//*%/,.,.....,,,...,/(#(**//(##((#(.(####/(#//*,,,,,*************/*/**/**//***//////*****/////(&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&%(((//***%#,,............../##//(((((((#(,##%%##(#((*,,,**,*************////////*///*//////*/**/////(#&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&#((///***,#(..............,//%(*/((/(((((/*##%%%%(%(#*,,,***************///*/**/*///*//////**////////(#&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&%##((////**(%##,,,,,..,.......,/%//((///#*((((#%%%%###(#,,***********************//*////////////////////((&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&%#((///*/#%###(((%,,,,,,,....,,,,,***(((((#((#*##%%%%(#%((****/******,*,*********////////////(/(/(////////(#&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&%####%%%%%##(#(((((/#(,,,,,,,,...,.,*/**(##((/(/**%(%&%/#(#/(**////***,***********/////////////(((((#(//////((#&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&%%############(#(((((((/(/&(,,,,,,,,,,,*,.(%#%###%(/(/(/%*%%%#&/////****************//////////(((((((##////((((##&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&%%######((((((((((((/(/(/(/((%#//*//#&%%&&&(##(%%(#%#.%#((%%%%%&%(////********,*******///////////(((((##/*/////(((#%&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&%%%########(((((/((//(////////(#&&&%(//(#(%&&&(((((%#/((/##%%%%%%&///****,,*,**********//////////((((###////////(((#&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&%%%#####(((((((((//(/((////(&###(((///(((%&&&&&&&&&&&&&&&&&&&&%((/****,,**,,*****/*/*///////(((((####/////////((##&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&%%%%%##(((((((((/////(((#&&%%%####((((///////((///((((///////////////**************/*////////((((###%#((////////((#%&&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&%%###(((((((((((((/((##%&&&&%%%#####((/////**/////////*/******///**********,*(#(//(#(/////((##(#%&%#%%#((////////((##%&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&%#%###((((((((#(((####%&&&&&&%#######((/(////////////*(/********************%#(#%#######((#%&&&&&&%#%&%#((////////((##%&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&%###############%%%&&&&&&&&&&%%######(((//(((((////*******************/((///##//*(#%%%#((##%%&&&%%%%/&%%(((///////(((#%&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&%#######%%%%%%%&&&&&&&&&&&&&%%####((#((((((((((((///**************(#*((%%%%%##(#((%%%%###%%%#%&%%((%#((///////(((##&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&(#%%&&&&&&&&&&&&&&&&&&&&&&%%###((((((((((((((((////***********(%%%###((((##%((#(%%%(#%((#((%#%(###%%&%#((//////(((###&&&&&&&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%###(((((((((#((((((((/////////*///%%%#((#(%%%#(/***/((#%##((((/#(((##%#(((#(((//*.,,,#%&&&&(/&&&&&&&&&&&&&&&&&&
%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%#####((((((((((((((((((///////////*%%%#%%((#%%%(/*, */##%%(/((((%##%%##//*,,.*,,.......,,,..,**,*(#&&&&&&&&&&&&&&&
Еще на тему