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