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