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