##########################################%
######################################################(
*######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@######
#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####
#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####
(((((@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#(((
(((((@@@@@@@//////@@@@@@@/////@@@@@@@@@@@@@/////@@@@@@@@/(((
(((((@@@@@@////////@@@@@@///////@@@@@@@@@@///////@@@@@@@/(((
(((((@@@@@@@////////@@@@@@///////@@@@@@@@///////@@@@@@@@/(((
(((((@@@@@@@@((((((((@@@@@@(((((((@@@@@@(((((((@@@@@@@@@#(((
(((((@@@@@@@@@((((((((@@@@%((((((((@@@@(((((((@@@@@@@@@@#(((
(((((@@@@@@@@@@((((((((@@/((((((((((@@(((((((@@@@@@@@@@@#(((
(((((@@@@@@@@@@@(((((((/@(((((((((((((((((((@@@@@@@@@@@@#(((
(////@@@@@@@@@@@@/////////////@////////////@@@@@@@@@@@@@#///
/////@@@@@@@@@@@@@///////////@@@//////////@@@@@@@@@@@@@@#///
/////@@@@@@@@@@@@@@/////////@@@@@////////@@@@@@@@@@@@@@@(///
/////@@@@@@@@@@@@@@@///////@@@@@@///////@@@@@@@@@@@@@@@@(///
/////@@@@@@@@@@@@@@@@/////@@@@@@@@%////@@@@@@@@@@@@@@@@@(///
/////@@@@@@@@@@@@@@@@@///@@@@@@@@@@#//%@@@@@@@@@@@@@@@@@(///
/////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@(///
/////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@////
/////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/////
///////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@///////
//////////////////////////////////////////////////////#