@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%%%?????????******++++++;;;;;:::::::::::::,,,,               
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%%%?????????*******++++++;;;;;:::::::::::::,,,,,             
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%????????********++++++;;;;:::::::::::::::,,,,,           
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%?????????********++++++;;;;;:::::::::::::::,,,,          
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################SSSSSSSSSSSSSSS%%%%%%%%%%%%%?????????*******+++++++;;;;;;:::::::::::::::,,,,,       
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%??????????********++++++;;;;;:::::::::::::::::,,,,,     
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%???????????********++++++;;;;;;::::::::::::::::::,,,,,  
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSSS%%%%%%%%%%%%???????????********+++++++;;;;;;::::::::::::::::::,,,,,
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSS%%%%%%%%%%%%%??????????**********+++++++;;;;;;;::::::::::::::::::,,
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSSS%%%%%%%%%%%%%???????????*********++++++++;;;;;;;::::::::::::::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################SSSSSSSSSSSSSSS%%%%%%%%%%%%%%???????????*********++++++++;;;;;;;;:::::::::::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%???????????**********+++++++++;;;;;;;;::::::::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%?????????????**********+++++++++;;;;;;;;;::::::::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%??????????????***********++++++++++;;;;;;;;;;:::
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@####################SSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%??????????????************++++++++++++;;;;;;;;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*;;*S@@@####################SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%??????????????***************+++++++++++++;;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+    :*########@#S%??S#########SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%???????????????***************+++++++++++
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,    ,;S@####@#?;,  ;S###########SSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%?????????????????*****************+++++
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S      ;%@@@@#*,    ;S#############SSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%???????????????????*****************
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%     ,;S@@@S:     +#################SSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%?????????????????????***********
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@?     ,+#@@?,    ,*#########SS########SSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%??????????????????????????**
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+     ,*##+     ,*###@##%*;::*S#########SSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%???????????????????????
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;     ,*S:     ,?#@@#?+,   ,*S############SSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%??????????????????
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,     ,;,     ,*@@S+,    ,+S################SSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%??????????
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@*             ,*#?;     :?S#####################SSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%+::;,            ,;*:     ;%#@@@@@@@@#################SSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,                  ,,     ,?@@#SS%?**+++*S#################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S                         :??*;:,      ,;?S#####################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+                        ,      ,:+*?S#@@#########################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:                         ,;*%S##@@@@@@##############################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%                      ,;%#@@@@@@@@@@@@@@@##############################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                      ;#@@@@@@@@@@@@@@@@@@@###################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%                      ,?@@@@@@@@@@@@@@@@@@@@@@@@######################################SSSSSSSSSSSSSSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,                      ;#@@@@@@@@@@@@@@@@@@@@@@@@@@################################################SSSSSSSSSSSSSSS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                      :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,                     :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######################################################
@@@@@@@@@@@@@@@@@@@@@@@@@S?+;:::::,                    ,+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###################################################
@@@@@@@@@@@@@@@@@@@@@@%+,                            ,+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##############################################
@@@@@@@@@@@@@@@@@@@@%;                              :?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#########################################
@@@@@@@@@@@@@@@@@@%:                                ,,;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##################################
@@@@@@@@@@@@@@@@?:                                     ,:*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########################
@@@@@@@@@@@@@@?:                                         ,:*S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@?:                                             ,;?#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@%:                                                 :+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@#+                                                    ,+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@