Код:
/////////////////////////,*/#&&&&@@@&&&@&&&&@&&@@&&&&&&&&&&&&@&%&&%&&&&&&&&&&&&&&&&@&&&&&&&&&&&%%#(((((#%%#(/****(#(//////****///(((###%&&&&%#(/*******************/%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
////////////////////////**(%&&&&&@@@&&&&&&&@&&&&@&&&%%&&&&%&&&%#%%%&&&&&&&&&&%%&&&&&&&&&&&&&&%#((/****/(////*,,,**///**********////(((##%&&&&&%////***************/#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//*///*//**////////////**#&&@&&@@@@&&&&&&&&&&&&&&&&%##%&%#/#&&((%%#%&%%&&&&((&&&&&%%&&&%%%#(/**,,..,*,,,**,,,,,,***,,,,,,,****/////(((##%&&&&%(//**************/%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
///****/**/**/////////*/#&&&&&&@&&&&&&&&&%&&&%##%&%#(//%#/*#&&//%##&%%%&&%(*/%%%&%%%%%%#(((//*,....,,,,,,,,,,,,,,,,,,,,,,,,*****/////((#%&&%%%%#/*************/%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//******/*****///////*/%&&&&&&&&%&&&&%(%#(%&&%/*#%#//*,##**(%%//(((%%(/((%%#/*(%####(/*(/*,,***,.....,,,,,,,,,,,,,,,,,,,,,,,*******/////((#%%%%%%(/**********(%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
///*******//////////*/%&&&&&&%&&%%&&%(/#/*/#%#*,(#/**,,((/,,*(*,***##*,**#%(,,(#((///***,...,,,...........,,,,,,,,,,,,,,,,,,********/////((##%%&&&&%(//*/****/#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
///**********//////**%%%%&&&%%%&%%%%(**(/,,/#(*,/(*,,,.*/*...*,.,,,/(,.../(/,,/(**,,,,,,.....,,.............,,,,,,,,,,,,,,,,,********////(((##%%&&&&%(///***/%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
///*********////(//*(%#%&&&&%##%#/##/*,(*,,*/*,.,/*....,*,. .....,,,....,/*..,,............................,,,,,,,,,,,,,,,,,,,*******////((((#%%%%&&&(/***(&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*//*********////((*/%%#%&%%#(((#(*//*,,/*,,.*,..,,,.....,. . ...,.. .,..................................,,,,,,,,,,,,,,,,,,*******////(((((#%#%&&&%(*/%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*//*******////////*#%##%%##((//((,**,,..,,...,...... ... .. ......................................,,,,,,,,,,,,,*******////((((####%&&@&%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
**********///////*(%%(##(##((**/*,,*,,,........... . ..........................................,,,,,,,,,,,*****////((((###%%%&@@@@&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
**********//////**##%((###((/****,................ ................................................,,,,,,,,****////(((####%%%&@@@&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
****/****///////*/(##((((#(//*,,,.............. .................................................,,,,,****////(((######&&@@&&&%%&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,****/**///*///*/#(#(###(((//*,,,.............. .... .....................,,,,****////(((##%%%%%&&@&&&%%%&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,,***//////////*(%(##((#(((/**,,................ . .. .... ........,,,,****////(((##%&&&&&&@@&&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,,,**//////////#%%##((((////**,,..................... ........,,,***///(((((###%&&&&&%&@@&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,,,***////////#&%#(#((#(((//**,,,,,................ .......,,,*//((#####(((##%%&&&&&@@@&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
,,,**/////////%%#((##((#(////*,,,,................. .......,,*/((####%%%######%%&&@@&@@@&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
/,,**///(////(%######((((///**,,,,................... ....,,*/((##%%&&&&&&%%%%%#%%%&&@@@@@@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
&/,,,*//((///(##%%%#(((#(////**,,.................... ...,,*//##%%%%%%%%%%%%%##%%%%&&@@@@&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@&/,**///////####%%####((///**,,,................... ..,,**/((#%####(//(((((((((#%%%&&@&*.....,//(#&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@%,,,*///(/(###%&%%####(((/***,,,.................. ...,**/(((((((//**********////(#%&&&%*.. ..,*(%@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@#*,*///(/(###%%%%#%%##(////*,,.................. ...,**//////*****,,,**********//(#%%&%*.. ....,*/%&@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@#,,*///*(#%#%&%%%&%%%(/((/*,,.................. ...,,***********,,,,,,,,******///((#%&%*,.....,,*/#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@&/,*//*/#%%%&%&&&&%%###(/*,,..................... .................. ....,,,*******,,,,,,,,,,,,***//////((#&@@@&#%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@&*,***/#%%%&&&&&&&%%%%#/*,..............................,,****,********//***,,.. ....,,********,,....,,,,,*****//((((((%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@/,,,,/%&&&&&&@@&&&&%#/*,....................,,.,,...,***/(/*//////(((((/*,,,,,.. ...,,********,,.......,,,,,****/((###((%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@(*,.,/%&&&&&@@@@&&(*,,......,,,..........,,,,,.,,,**////*/((((/(((/*,,,,,..... ....,********,,.......,,,,,****////(#%%##%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@#*,.,*#&&&&&@@@@&&%#/*,,,....,,,,..,,,,,,.,,**,,,,*///((/****/****,,,,........... ..,,****/***,,........,,,****/////(((#%%%%%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@%**,,*#&&@@@@@@&&%#(**,,,,..,,,,,,,,,**,,,,*,*****//**,............................ ..,*////***............,,**//////((((#%&%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@&/*,.*#&&&@@@@&&%#(/*,,,,,,,,,,,,**,,,..,,,*,,..,,,,................................. ..,*////*,,...,,,,,/(#%%%%%%#(((#%%%%%%%%%%%%&@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@(*,.,(&&&@@@@&%((/***,,,,,,,,,,,.....,,..,,........ ........................... ..,*((//,,,*.. .,,.....,,*/(((#%%%##%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@%*,.,(&&&@@@@&%(//***,,,,,,,,*,,,,,,,................ .......................... ...,*/((***,*,. ....,,*//(((#%#((((#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@&(*,./&&@&&@&&%(/***,,,,,,,**//*,,,,,................. .......,,,,,,.............. ....,,*(#(/**,,,,,,,,,,,,,****//////(##(///((#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@#*,.*&&&@&&&(/***,,,,,,,,*,,,,,,.................... ...,,,,,,,,,,,,... ....... ....,*(##*,,,...,,,,,,,,,,,,,****/(((////((#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@/*,,%%&@&&&&%(/***,,,,.,,,,,,,.......................... ...,,,,,,,,,,,,,,.. ...... ....,*(%#/*,,,,,,,,,,,,,,,****///*****///(#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@#/,*#%&@&&&%%(/**,,,,,..,,,,.............,,,,.......... ..,*//,,,,,,,,,,..... ....... .....,,(%%#*,,,,,,,,,,,,,***************/((#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@#/*%%&@&&&&%#/**,,,,..................,,,,,,,,,,,,,,**/(##(/*,.......,,..... ...... ...*/(#(*,,,,,,,,,,,,,,,,,***********/((&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@(/%%&&&&&&%%(**,,,.................,,,,**,,,,*****,*,*,........,.,........ ...... ..,*(#(/*,,,,,,,,,,,,,,,,,,,,,,,,***/((%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@%%%%&&%&&&%(**,,,.................,,,*/((#(#(////*,,,,.. ................ ...... .*/(#(/*,,,,.....,,,,,,,,,,,,,,,**//(%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@%%&&%%&&&%#**,,,........ .....,,*/****,*,.,... ................. .,/(((/*,,,,,...........,,,,,,,,**//(#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@%%&&&%%&%%(***,,........ . ............... ...... .... ..*/(((/,,,,...............,,,,,***/(#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@%%%%&&&&&&%#(**,,........... ............. .. .,/((((*,,,...............,,,,,**//(#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@&%##%%%&&&&%%%(**,,........ .. ..,((#(/*,,...............,,,,,***/(#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@#((#%%%&%%&&%%(/**,,........ ... ..*/(#(/*,..............,,,,,,**/((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@&//(##(%%#%&%%#(**,,,........... .,*/(##/,,...............,,,***/((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@(..,,*/((#%%%#(/**,,,....... .,*/#%%/,...............,,,**/(((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@(.. .,,,*#%%###(**,,,....... ..,*#%&%*...............,,,,*/(((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@(....,,,,/#%##((/**,,,...... .,/(#%#/,............,,,,**/(((%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@(....,,..,(%%###(***,,,...... .,*/(%%(,............,,,**//((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@%,..,,...**(#((((/***,,,..... ..,*(#%%(*.........,,,,**//((%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@%,.,,.....*##%##/**,,,,...... .. ..*(#%%#*........,,,,**///(%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@(.,,.. ..,/###(/**,,,,...... ... .*(#%%%/.......,,,,***//((&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@(,,......,###((/*,,,,,..... ... ,(%#%#*.......,,,,,***/((&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@&/,......,(#%##/*,,,,,..... ... .*(#%#/,.......,,,,**///((&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@%/,..,,,*/#%%%(/*,,,,,... .#%%(*,......,,,,,,**//((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@&(,,...,**###%(/*,,,,,.... .,(%#/,,......,,,,,,,**//((#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@&*,,,.,,**(#%#(/**,,,.... ... ....*/(/,,....,,,,,,,,,,***///(#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@%*,.,,,,*((###(***,,.... ........ .......,*//*,,......,,,,,,,,****////(#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@,,,,**((###(/**,,,... .. .......,*,,,.,.....,,,,,,,**///////(#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@#/,,,,/#(###(/**,,.... ...,,...,,,,,,,,,,,,**/////(((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@/,,,(####(/**,,.... ........,,,,,,,,,***//((((((%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@%(//(#%##(/*,,,.... .......,,,,,***,,,**/((((((%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%&%#(/***,,... .....,,,,,,,*******//(((((#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&#(****,... ... ......,,,*****//*****/(((((#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&#(/***,.... ........ ...,,,,,,,****////****/(((##%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%#/**,....... ............,,,,,,**/////((****/((##%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%#(/**,...... ...............,,,,,**/////((*,,**/((#%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%#(/*,........ ..................,,,,,,,,,**////((/*,,,,,///(%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%#//,,............. ..................,,,,,,,,,,***/(/////(****,**//(#%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#/*,,............ ................,,,,,,,,,...,,,,***///**///**/****((#%&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%(**,............ .........,,,,,,,........ ......,,,,/(((//////////***/(#%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%(/,,....... ....,,..,,,**,.. ........,,**///////*//////((////(#%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%#/*,........... ...,,,,,,,,,,,***,,....,,,,,**********************///(((////(%%%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%(*,,........... ........,,,,,,,,,**,***,,,*,,,******,,,,,,,,****//((((///(#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&%#/*,............... .. ........,,,,,.,,,,,.,,,,,,,,,,,,,..,,,,,,****/((//////(#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%#/*,,................... .......,...................,,,,,,,,,*****//(((//////(#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%%%%#/**,.................... ........,,,,,..........,,,,,,,,,*****////((//*////#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@(##%%%(/*,,,.................... ......,,,,,,,,,,...,,,,,,,,***////////(/***///(%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%#/((##&%%#(//*,,....................... ......,,,,,,,****/////////((//**/**,***//(#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%%((((((%%((/(((**,,,....................... .....,,,***//(#(//////(////***,,,,**/(#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&%((((((((%#(/***////*,,,............................. ...,,,,**/***,,,,..............,,**/(%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%(/((///((#(//**,,,*///**,,........................... ....,..,... .......,,*/#%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&%%((((//////#//***,,,.,,///**,,,,...................... .......,,*/%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&%///(///////#/***,,,,,,..,*//**,,,,,,.............. ......,,*/#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&%///(///*////(/**,,,,,,......,*****,,,,,............ ......,,/(%@@@@@@@@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@&&@&&&&&&&&&%#/*////**/*////*,,,,,,,,.........,*****,,,........ ....,,*(%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@&@@&@&&&&&&&&&%(*/////****///(/,,,,,..............,,****,,...... .. ....,,*(%&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&%#////****/*******,,,..................,,***,,........... .. .......,*/#&&@@@@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&%%///***//*****//***,,,,................,,,****,,......... . .....,,*(%&&@@@@@@@@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&%(/////***,****/****,.,..............,....,,*//**,,....... .......,,*/(%&@@@@@@&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&%#//**********,*******................,,,,,,,,*/(/*,,,,,...... ... ......,,**(%%%&&@&&&&&&&&@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&%%(/*//****,*****//*****..................,,,,,*//(((///**,,,,,.......,,,,,*/((%%%%%%%&&&&&&&&&&&@&@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&%#//*//********,,**//****,..............,.,,,,,,,,***//((/((((/////((((##%%&###(%%&%&&&&&&&&@@&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&%%(/******/*,,******/*******...........,.,,,,,,,,,,,,,,,,*(/*////((((((#%%&%####%&&%&&&&&&&&&@&@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%(//*//*,*******,,***////****,,..,..,,,,,,,,,,,,,,,,,,,,******////(##%&%#(((%&%%&&&&&&&&@@@&@&&@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@&&&&&&&&@&&&&&&&&&&&&&&&&&&&&&&&&%%%(/**********,**,********//*****,,,,,,,,,,,,,,,,,,,,,*******///(##%%##((#%%%%&&&&&&&&&@@&&&&&@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%#///****,*****//*,***/*//*////(/(/**,,,,,,,,,,,,*******//((##%%%#(//%%##&&&&&&&&&&@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%#///*****/*/*,**/****/****//(////(((//************////((###%#(((/(%##&&&&&&&@@&&&&&&@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%#**////****/***//****/////*////(///(((((//(((((//(((%#((((#((#%#&&&&@&&&@@@@@@&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%(///**//*///****///***//////*//(((////((((////(//##((#(/(##%&&&&&@@@&&@@@&&@@&&@&&@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&%#/*//**//(((/**////*/**/////*//(((((//(#(///((*..*((%&&&&&&&@@@&&@@@&&@&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%#(**//***/((((((////((/////((((//(((//((/* .,*%&&&&&&&&@@@@@@@@&&@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%##(/(/////////////((//((((//((((###%&&&&&&&&&&&&@@@@@@@&&@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&&&&&&&&&&&&&&&&@&&&&&&@@@@&@@@&&@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@&&&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@&&&@@@@&@@@&@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@&&&&@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@&&&@@@@@&&@@@&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@&@@@@&@@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@&@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@&&@@&&&&&@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@&@&@@@@@@@&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@&&@@@@@@&&&@&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
&&@&@@@@@@@@&@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@&&&&&&&&@@@@@@@&&&&&@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@&&@@@@@@@@@&&@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&@&&&&&&&&&&@@@@&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
&@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@@&&&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@&&&@@&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&&&&&&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@