Submission #1076284

# Submission time Handle Problem Language Result Execution time Memory
1076284 2024-08-26T12:33:10 Z coolsentenceidontremember Tracks in the Snow (BOI13_tracks) C++17
100 / 100
450 ms 126560 KB
#include"bits/stdc++.h"

#pragma GCC optimize("O3", "unroll-loops")


#define ll long long
#define ld long double
#define ff first
#define ss second
#define db double
#define time_begin() auto begin = chrono::high_resolution_clock::now()
#define time_end() auto end = chrono::high_resolution_clock::now(); auto elapsed = chrono::duration_cast<chrono::nanoseconds>(end-begin); auto sec = elapsed.count() * 1e-9; cerr << "\n\nExecution time: " << sec << " seconds";
#define check_time() cerr << "\nStatus : "; if (sec>1) cerr << "Time Limit Exceeded 1!!!1!111"; else cerr << "You good brother"
#define precision(x) fixed << setprecision((x))
#define check_ok(s) cout << s << " is aight" << '\n'
using namespace std;

/*


;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++
::::::::::::::::;S*.......+%:,....,*%,......,S+,,:;*%+:,..........,:*S##+.......+#SS:.......?@*.............%S:....;%;.....,%?%?,.....*%+?*:,,........,,:;?*,+S,......,S#?.......;S;....................
:::;;;::::::::::+S*.....,.+S;,,...,*%,......:S?;+*%S;......:?*,......+#@%,......:##S......,,S@*.......,,,,::%#?;,..,*%:.,...*#S;...,.;S*%*,.....,*%;......,%?*S,......,S#?.......;S;....................
::::::::::::::::+S*.......+S;,,...,*%,......:#%???#?.......+@@;......,%@#;......,%@*.......;##*.......+#%%%%%%%?+,..,?%,.,..:#S,....:S?*%:.,....,S@?.,.....+S?S,......,S#?.......;S;....................
;;;;;;;;:::;;;::+S*.......+S;,....,*%,......:#S??%#?.......+@#:.......%##*,.....,%@+......,?##*.......*#S%%%???%%*:,.:%*...,,?+....,%?:*%,......,S#*.,.....+S?S,......,S#?.......;S;....................
;;;;;;;;;;;;;;::+S*.......+S;,...,,?S,......:#S%%%#?.......+@@:.......%##S,......*#:......,SS#*......,:;;;;+S%??%%?:.,+S;...,,,....*S:,*S,......,S#*.......+S?S,......,S#?.......;S;....................
;;;;;;;;;;;;;;::+S*.......+S;,,,,,:?S,......:#S%%%#?.......+@@:.......%#S#;......;#:......;#S#*............:#%????%%;,,*S:.,......;S+,,*S,......,S#*.......+S?S,......,S#?,......;S;....................
;;;;;;;;;;;;;;::+S*.......+S;,,,:;+%S,......:#S%%%#?.......+@@:.......%#%#?......:*,......?#%#*.......:++++*S??????%%+,:%?,......:%*,.,*%,......,S#*.......+S?S,......,S@?.......;S;....................
;;;;;;;;;;;;;;::+S*.......+S;::;+*?SS,......:#S??%#?.......+@@:.......%#?%S:.....,+......:SS%#*......,*#%???****????%%*:;S;......*S:..,*S,......,S#*.......+S?S,......,S@?.......;S;....................
;;;;;;;;;;;;;;::+S*.......+S;:+???%#S,......:##%%%#?...,...+@@;......,%#?%#+.....,,......+#??#*.......+#%%%??****????%%?*S;......*%:..,*%,......,#@*.......+S?S,......,S@?.......;S;....................
;;;;;;;;;;;;;;::+S*.......+S*?%%?%%#S,.....,,:;::+#S:..,,.,:%%:..,,..;#%??#%,............?#??#*.......,:;;;;*S?****????%S#;......*%:...;S+......,?S+.,....,%?+%+.....,,?S+,.....,*%:....................
;;;;;;;;;;;;;;:;+S*.......+#%%%%%%S#S,...........:##%;,............,+S%?*?%#;...........:#S??#*.............+#?*****????S#;......*S:...,+%*:,...........,:??:,+%+:,...........,:*?;,....................
;;;;;;;;;::;;;::+%?;;;;;;;?#S%%%SSS#S;;;;;;;;;;;;*S%%SS?+;;::::;;*?%S?*****S?;;;;;;;;;;;*S%??%?;;;;;;;;;;;;;*S?******???%S*;;;;;;*?,....,:+**+;;:::::;+***;,..,:+**++;;::::;;+**;,......................
:::::;;;;:;;;;:;;;+++++*%SSS%%%SSSSS%S##SS%%%%%SS%??%%%%%SSSSS%%%%???****+**??????%%???%?++*?**????%%%***????*********???%%SS?+;;:,,.......,,:;++++++;;:,........,,:;;++++++;:,,........................
;;;;;;;;;::;;;;;;::,::;?%%%S%SSSSSS%SSSS%?????%%???%%???%%%%%%??%??%%*****??****+++*+++*?+++*?*++++*?*+;;;++***********??????*;,........................................................................
;;;;;;;;;;;;;;;;:::::+?%SSSSSSSSSS%SS#SS%%???%S%?%S%%?%%%%%%???%?*?%%***????????**???***??***??*****???*++;+**************+;:;++:,......................................................................
;;:;;;;;;;;;;;;:::;;+%SSSSSSSSSSSSS###SSS%%%%S%?%SS%%%%%%%???**??**%%?*???%?????????%?**?%?**?%?*?***%?***+;+*******++;:,,,,::;;+;,.....................................................................
;;;;;;;;;;;;;;:::++*%SSSSSSSSS##SS#S#SSSS%%%S%%%SS%%%%%%????*:++?**%%?????%%?%%%%%??%????%????%%????*?%?***;;++;;;::,,,..,,,,::;;+;:....................................................................
::;;;;;;;;;;;::;+*?%SSSSSS######S####SSSS%%SS%%%%%%%SS%??%?+,,*;?**?%%????%%?%%%%%%%%%???%????%%??????S%?**+:,,,,........,.,,,:::;++:,..................................................................
;;;;;;;;;;;::;+*?%%S###SS############SSSS%%#S%%%%SSSS%%?*+;:::*;????%%???%%%%?%%%%%%%%%??%????%%%?????%%???*;,.............,,,,,::;;+;,.................................................................
;;;;;;;;;;::+*?%%SS##################SSSS%S#S%%%SSSS%?*;:,.,,,*;+%%%%S%???%%%%%%%%%%%%%??%%???%%%%????%S%??*;:...............,,,,::;;++:,...............................................................
;;;;;;;;;;+++*SS%SS#################SSSSSSS#S%%%SSSS?*+;;::,,,:;:*S%SSS%??%%%S%?%%%?%%S%?%%????%S%????%S%??*;:...............,,,,,:::;++:,,,............................................................
;;;;;;;+**+;+?SS%SS#################SSSSSSS#S%%%S#S%S###SSS?+;::::*%SSSS%%%%%%S%?%%??%%%?%%????%S%????%S%%?*;:................,,,,,:::;;+;,.............................................................
++++++******?S##SS##################SSSSSSS#S%%SSS+;S#SS######%*;::;?SSSS%%%%%%S%%%%??%%%%%????%SS????SS%%?*;:,.................,,,,,::;;++:,...........................................................
******??????%S##SS##################SS#SSSS#SS%SS%:;%?%SSS#SS?*?%+:::+%%SSS%SS%%SS%%%%%%%%%????%SS???%SSS%?*;:...................,,,,,:::;++;,..........................................................
?????????????S##SS##################SS#SSSS##S%SS?::++;++?%?;:::+;:,,,:+??%SSSS%%%SSSS%%S%%???%SSS???%SS%??+;:....................,,,,,:::;;+;:.........................................................
%????????????%##SS###################S#SSSS##S%SS?;::;++;;::,:::,:,,,,,,;+++??%SS%?%SSS%SS%???%S#S%??SSS%?*:,,......................,,,,,::;;++:,.......................................................
%%%%%%%%?????%S######################SS#SSS##SSSS?;:::::::::,:,,,,,,,,,,,:;;+?SS##S%%SSS%%%??%S##S??%SSS%?+,,........................,,,,,::;;++;,......................................................
????%%SSSSSSSSSS#####################SS#SSSS#SSSS%;::::::::::::::,,,,,,,,,,+%S%SSS%+:;?#SS%?%S###%??S%SS%?;,,.........................,,,,,:::;;+;:.....................................................
????????%%%SSSS#######################SSSSSSSSSSSS*:::::::::::::::,,:::::::++++++;:::;***%%?%S##S%%%%*S%%?:,..........................,,,,,,:::;;++:,...................................................
?????????????%%%SSSSS##################SSSSSSSSSSSS;,::::::::::::::::::::::;;;:::,,,:+*%SS%%S###S%%%*%?%?:,..............................,,,,,:::;+++:..................................................
????????????????%%?%%SSSSS#SS##########SS#SSSS#SSS%*:::::::::::::::::::::::::::;:::;*S##S%%S####S%%?%*+;,.................................,,,,::::;*%?;,,...............................................
??????????????????%??%%%%%%%%#######%%####SSSS###SS*+;:::::::::::::::::::::::::::;?S####SS######SS%S*,,...................................,,,,,,:;*?%%%+,,,.............................................
%%%%%%%%%%%?%??%???%%?%%%%%?%S#S%%%%%?S####SSS%S###S+:;::::::::::::::::::::::::;?S#####%S#######S?*;,......................................,,,,;+*???%%%?;,.............................................
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S#S%???%??%####SSS%S###S+::::::::::::::::::::;;+?%######S?%#####S%+:,.......................................,,::++*??????%%%%+,............................................
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%S%%%%%%%%%S#####SS%SS##S*;:::::::;;;;;++**?%SS########%*%#####?:.....................................,,,,::;++******?????%%%%*:,,.........................................
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSS#####S%%%S##S%*++**?++**%SSS############S?*%####?:,..................................,,,::;;++***********??????%%%%;,.........................................
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSSSSSSSSS%%S###S%%??%S#S%?%%%%%*??*SSSSS##########?+?###?:............................,,,,,,:::;++++*****************??????%%%*:........................................
%%%%%%??%???????%%%%%%%%SSS########SSSSSSS%SS###S%%???%SS%???%%%+%%?S%%%#########?+%#S?:,.....................,,,,,,:::;;;+++++++********************???????%%%?;,,.....................................
%??????????????%%%SSS#################SSSSSSS####S%%%%%%SS%%%%%%?*%????%########%*%?;:,.......,,,,,,,,,,,::::;;;;+++++++++++++++++*+++*****************??????%%%%+,.....................................
????????????%%SSSSSSSSS%%%%%%%%%%%SSSS###SSSSS#S###SS%%%%S#S%??*?**?%??S####S%SS??*;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++****************???????%%%?;,...................................
???????%%%%SSSSS%%%%%%%%%%%%%%%%%%%%%%%SS%???%%%?%%S%?****%#%+;+*?*??%?%###S?*?********************+*++++++++++++++++++++++++++++++++++++****************????????%%%+,..................................
?%%%%%SSSSSSSS%%????%%%%%%%%%%%%%%%%%%%%%*++++++++*?%%?*+;+%#%+++??*???%##S???*?**************+++++++++++++++++++++++++++++++++++++++++****+***************???????%%%*:.................................
+*?%%SSSSSSS%%%?????%%%%%%%%%%%%%%%%%%%%?+;;;;;;+++++**???**%#*;;+%***?S##%???*?**************+++++++++++++++++++++++++++++++++++++++++****+***************????????%%%?;,...............................
;++*%SS%%S%%???%???????%%%%%%%%%%%%%%%%%?+;;;;;:;;;;;;;;;;;;+S*;:;??*+?#S%??????**************++++++++++++++++++++++++++++++++++++++++++++*+*****************??????%%%%%*:,.............................
;+*%S%%%%%%%????%%%%%%%%%%%%%%%%%%%%%%%%?+;;;;;;;;:::::;;;;;;?*;++*?*+*#S???????**************++++++++++++++++++++++++++++++++++++++++++++*+******************????????%%%?;,...................,,,,,,:::
;+%%%%%%?????????????%%%%%%SSS%%%%%%%%%%%*;;;;;;;;;;;::::::::+;;;;+??**S%???????***************+++++++++++++++++++++++++++++++++++++++++++*+********************???????%%%?;,........,,,,,,:::;;++++++**
:?%%%%%%%%%%?????????%%%%%%%%%%SSSSS%%%?%?+;;;:;;;;;;;::::::;;:::::;?*+%S%???????**************++*+++++++++++++++++++++++++++++++++++++++++++*++******************????????*++:,,:::;;;+++++*************
;%%%%%%%%%??????**????????%%%%%%%%%%SSSSSS*++;;;:;;;+;;:::::::::::::;?*?%%??????***************++++++++++++++++++++++++++++++++++++++++++++++*++*******************??????+;;+++++*************+*********
+%%%%%%%%%%???********???????????%%%%%%%%S%*+;++;;:;;+;::::::::::::::+??%%?????******************++*++++++++++++++++++++++++++++++++++++++++++++*********************??*;::;;;+*************++++********
?%%%%%%%%%%?*******?????%%%%%?***??????%%%%%*;;;;;;;;;;;::::::::::::::*?%%?????******************++*++++++++++++++++++++++++++++++++++++++++++++**********************;:,:::;;;++***********+*++********
%%%%%%%%%%%?********??????%SSSS%??****?????%%?+;;;;;;;;;::::::::::::::;?%%?????********************++++++++++++++++++++++++++++++++++++++++++++++*****************++:,,,,,::::;;++**********************
%%%%%%%%%%%%?*******????????%SS#S%%???***?*?%%*+++;;;;;;::::::::::::::;?%%?????********************+++++++++++++++++++++++++++++++++++++++++++++***************++;:,,,,,,,,,:::;;++*********************
%%%??%%S%%%%??*****????????????%S##SS%%?????%S%+++;;+;;:::::::::::::::;*%%?????********************+++++++++++++++++++++++++++++++++++++++++++++***********++;:,,,...,,,,,,,,:::;;;++*******************
%%%???%SS%%%%??****??????????????%S###SS%%?%SS%+++;;;;;::::::::;;;;;::;*%%???????*****************+**++++++++++++++++++++++++++++++++++++++++++++******++;::,,..........,,,,,,,:::;;;+******************
??????%SS%%%%%??*****???????????????%S###S%SSS%+++;+++;:::::::::;;;;::;*%%??????********************++++++++++++++++++++++++++++++++++++++++++*+**+;::::,,,,,,,,........,,,,,,,::::;;;++****************
???????%SS%%%%%???***??????????????????%S####S?+;++++;::::::::::;;;;::;*%%?????***********************++++++++++++++++++++++++++****++++++********?*;:..,.,,,,,,,,,.......,,,,,,,::::;;++**********++***
????????%SS%%%%%??****????????????????????%SSS?++*++;:::::::::::;;;;::;;+**?????***********************++++++++++++++++++++++*?????%??*************???;,,.,,....,,,,,,,,....,,,,,,,:::;;;++********+++*+
?????????SSS%%%%%??*****?????????????????????%%?*+++;::::::::::;;;;;::;;;;:;++*******************+++++*+++++++++++***********?%%%%??%%?**************??+,,,.....,,,,,,:,,...,,,,,,,,::::;;++*?*+***++++*
?????????%SSS%%%%%???******????????????????????%?++;:::::::::::::;;;::;;;;:::,,,::;;++++++***+*****+****+++++****************?%S%%????%?*************???+,......,,,,,,,,,,,,,..,,,,,,::::;;;+??**+*++++*
%?????????%SSS%%%%%%???*******????????????????????+:::::::::::::::;;::;;;;:::,,,,,,,,,,,,,,,:::::::::::::;+**??***************%S%%%????%??????????????%??;....,,,,,,,,,,,:::::,,,,,,,,,:::;;+?%?***+**++
%%???????*?%S#S%%%%%%%??***************????????????+::;;;;;::::::::::::;;;:::,,,,,,.,,..............,:;+***?*****************?%S%%%?????%%%%????????????%*,.,,,,:::::::,:::;;;;:,,,,,,,,::::+?%%??*+*+++
%%%??????**?S##S%%%%%%%???*************************?*+;;;++;:::::::::::;;;:::,,,,,,............,,:;+*???*?******************?%%%%%%?????%%%%?*****???????*:,,,,,,,,,:::::::::;;;:,,,,,,,,,::*??%%%?***++
?%%%????**?%%SS#S%%%%%%%????***********************???*;;+;;;::;;;;;++;;+;:::,,,,,,.........,,;+*????????%%%%????**********?%%%%%??***?%%%%%?*******?????*;;;:::,,,,::::;;:::::::,,,.,,,,,:+?????%%?**++
??%%%????%??*?SS#SS%%%%%%%???**********************???%*++;;;;+++++++++++++;:,,,,,,.......,:+*????????%%%%%%%%%%%%????????%%%????****??%%%%%%?******??*+;:,,,......,,,,,:::::,,...,.....,;**?????%%%?***
S??%%%%%%??????SS##S%%%%%%%?????******************??%SSS%??*+++++++++++;;;++:,,,,,,.....,;*???????????????%%%%%%%%%%%%%??%????******???%%%%%%????*+;:,,..............................,,:+*??????????%?*+
%%??%SS%????????S###S%%%%%%%????***************?%%SSSS%%%%?????*++++++;:;++**+;,,,,..,:*??????????????????%%%%%??%%%%%%??????******?%????%%%?+;:,,.................................,,:+********???????*+
%??*%%%%%????????%S##S%%%%%%%???***********??%%S%%%%%???%SS%?***?**+++;+**???%%?*+::;*%%?????????????????%%%%%%%%%%%%?????????****????????*;,....................................,:;+***********??????*+
;;*?????%%%???????%S##S%%%%%%%?******?????%%%%?????????%%##S??***?????????%%??%%SSSSS%??????????????????%%%%%%%%%%%%%??????????**?????%??+,..................................,,,:;+****************??**+
;;+??????%%%%??????%S##SS%%%%%%?***??????????????????%%%%###%???***?????%SS%?%%SS#S%????????????????????%%%%%%%?????%??????????????%??*;:,,...............................,,,:;+**********************++
;;;**??????%%%%?????%S###S%%%%%????????????????????%%%%%%###S%????????%SSS%??%S#S%?????????????????????%%%%%%%?????????????????????*;:,..............................,,,,:;++************************+++
;;;++??????%%%S%??????%S##S%%%%%%%%%?????????%??%%%%%%%%S###%%%%%%%?%S###S%%%SSS%?????????????????????%%%%%%%%???????????????%%%?;,,..............................,,::;+++***************************+++
;;+++**?????%%%SS%?????%S##SS%%%%%%%%?%%%%%%%%%%%%%%%%%%S##S%%%%%%%%S####SSSSS%???????%%%????????????%%%%%%%?????????????%%%?*+:,...........................,,,,:;;+++***++************************+++++
+++++***???%%%%%%SS%%????%S##S%%%%%%%??%%%%%%%%%%%%%%%%%S##%%%%%%%%S####SSS%%????????%SS%??????????%%%%%%%%%?????????%%%??*;,,........................,,,,::;;++++***+++*+++*********************+++++++
****?*?*??%?%%%%%%SSS%%???%S###S%%%%%%??%%%%%%%%%%%%%%%S###%%%%%%%S####SS%%?????????%SSS%??????????%%%%%%%??????%%???*+;:,.....................,,,,,::;;++++++++++++++++****+******************+++++++++
***++++;;+*??%%%%%%SSSSS%???%S###S%%%%%%?%%%%%%%%%%%%%%S##S%%%%%%S####S%???????????%SSS%%?????????%%%%%%%????%?*+;:,,.................,,,,,:::;;;++++++++++++++++++++++++++*+++*************++++++++*+++
;;;::;;;;;;+*??%%%%%%SSSSS%???S###S%%%%%%%%%%%%%%%%%%%%S##S%%%%%S###S%????????????%SSS%%%????????%%%%%??????*+:,...,,,,,,,,,,,,:::::;;;;+++++++++++++++++++++++++++++++++++*++***+*******+++++++++++++++
:::;;;;;;;+++**???%%%%%%SSSS%%?%S###S%%%%%%?%%%%%%%%%%%##S%%%%%%S##S%????????????%SSS%%%????????%%%%%????*+;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++***+++++++++++++++++++++++
:::;;;++****+++++*???%%%%%%SSSS%%%S###S%%%%%%%%%%%%%%%S##S%%%%%S#S%????????????%%SSS%%%????????%?%%%%??**++*****++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;++*****+++;;+++++**???%%%%SSS#SS%SS##SS%%%%%%%%%%%%%S#S%%%%%%SS%????????????%SSS%%%%?????????%%???**+****++*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+***++++;;;;;;;++++++++***??%%%SS##SS####S%%%%%%%%%%%SSSS%%%%%%%?????????????%%%%%%%????????????***++++*****++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++;;;++;;;;;;;;+++++++++++++***??%%SS######S%%%%%%%%%SS%%%%%%%%????????????%%%%%%%??????????*****************+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;;;;;+++;;;;;+++++++++*************??%%SS###S%%%%%%%%%%%%%%%%???????????%%%%%%%%???????*******************+**++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++++
;;;;;;;++++;;++++++++++++++++***********??%SS##SS%%%%%%%%%%%%??????%%%%%%%%%%%%??%%%%??******************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;+++++++++++
;;;;;;;;;;+++++++++++++++++;;;;;++***?%%%%%%%%S%%%%%%%%%%%%%%%%%%%%%%%%%%?%??????????????????********************+*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+;+;;++++++++++++++
;;;+++;;;;;+++++++++++++++*****??%%%%%???****++++++**??%%%%%%%%%%%%%%%%???**++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+++++++++++++++++++
;;;;;;;;;;;;;++++++++++**????%%%??***+++;;;;;;;;;::;;;;;+++****????***++;;;;;:::;;;;::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;+;;;+++++++++++++++++++++++++++++++++;;;;;;;;;++++++++++++++++++
;;;;;;++++++;;;;+++**?????%??*++;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;++++;+++++++++++++
;++++++++++++++**?????%??*+;;;;:::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::;;;;++++++++;;;;;;;;;;;;;;;;;;+;;;;++++++++++*+***
;;;++++;;+++*??????%%?*+;;::::::::::,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::;;;;;+++++;;;;;;;;;;;;;;;+++++*********???
+++++;;+**??????%%?*;;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::;;;;+++;+++++++*****?????????????
++;++*???????%%?*;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::;+****??????????????????????
;;+*??????%%?*+;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::;*????????????????????????
+???????%%?+::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::;*??????????????????????
??????%%*;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,,:::::::::+*?????????????*****++
?%??%?+;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;:::,,,,,,,,,,:::::::::;+??****++;;;::,,,,,,
%?%?+::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::;;;;;;;;;;;;;;;++;;;;;;;;;::::,,,,,,,,,,,,,,,,,,,::::::::+:,,,,,............
?%*;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;+++++++++;;;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;,.................
%+::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;++++++++++;;;::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::;,.................
*:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;+++++++++++;;;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::;:..................
:::,,,,,,,,,,,:,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;+++++++****++;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::;;,..................
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;+++++++****++;;::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;,...................
::,,,,,,,,,,,,,,,:,,,,,:,,,,:::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;+++++++*****++;::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,,....................
,,,,,,,,,,,,,,,,,,,,,::::::,,:,:::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;++++++********+;:::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;:,......................
:::::,,,::::::,,:::::,::::::::::::::::::::::::::::::::::::;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++*****???***+;::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,:::::;;;;:,,......................
******++******?******+;:::+**?****?**;::::::;**?????**+***????*****???????*??????????????*+*????%%%%??%?????***+:,,,,,:+**********+::+******+:,,,:+***************++******????*****+++++********++:,....
,,,,,*##;,,,,,S+,,,,;S*:+??;:,,,,,,:+??+:::;?%:,,,,,,%#S:,,,,,,?#S,,,,,,,,,S#;,,,,,,,,::;?SS%,,,,,*S?S*,,,,,,,;S+:,,,,+S;,,,,,,,::;?%S:,,,,+S;,,:*S:,,,,,,,?#:,,,:S#?,,,,?@;,,,,,,,,*@?,,,,,,,,::;?*:...
,....;@S,....;#;....:S*;%?,..,,%?,...,%%;::;?S,......+@?.......?@S,....:+++S#;....:?+....,S@S,....*S%S:..,:,..,%%:,,,,+S;....:?:...:##:....;S+,,;%?,..,:,..;@%,..,%@;...;##;....,++;*#?.....*?,...,%*,..
+....:#?,....*@;....:S*+S+....,#S.....*S+::;?S,...,,.:S;.,:....?@S,....*@S%%#;....:@%.....?@%,....*SS?,..,;:.,.+S+,,,,+S;....;#;...,##:....;S+,:+S;...,+,..,%@*...+%,..:%%S;....:#S*+%?.....%@,....%?,..
%,...,S*....,S@;....:S*+S*....,SS+++++??;::;?S,...+;.,+,.:+....?@S,....,;:+##;....:#?.....?@S,....*#S+..,,%*.,,,%?:,,,+S;....:+,...:##:....;S+::?%,...;S:,,.+##+..,:,.,%?+S;....,:::%#?.....;;,,,:+%;,..
#;....+;....;##;....:S*+S*....,SS%%%%%*+;::;?S,...+*..,,.+*....?@S,...,:;:+##;....:#?.....?@S,....*#S:...,S?,.,.+S;,,,+#;....,,::;+?SS:....;S+:;S*....+@;.,.,%SS:.....*%:;S;....,:::%#?.....;;,,,;?%;...
#*....;:....*##;....:#*+S+....,SS,,,,,*%;;:;?S,...+%,...,%*....?@S,....*#?*?S;....:@?.....?@%,....*@?,...,++,.,.,S*:,,+S;....:S%**+;*S:....;#*;*S;....;*:..,.*SS*....:S+,;S;....;#%+;%?.....%#,...,%?,..
SS,...,,...,SS#;....:??*#*....,S%.....?%;:;;%S,...+#;.,.:#*.,..?@S,....+%?*?#;.,..:S*.....?#%,....*@+...,,::,....?%:,,+S;....:S+:,,:*S:....;%?*S%,...,:::,...:##?....:S+,;S;....:??*+S?.....%#,....%?,..
%#+........+#S#;.......,S#+,...::..,:*S?+++*SS,...+@*...;@*....?@%,........+@;....,,,....:%S%,....*S,....*##+....;S+,,+S;....:S+::::*S:.......,#*....,S#%,...,?@?....:S;.;S;........:#?.....%#,....%?,..
%SS********%#S#?********S##S?*++++*?SS%?????%S****?#S***S#%****%SS*********?#?*********??%?*%*****%S*****%%%?*****%*;;+%?****?%*;+;+*S?********#?****?S%%*****%#S*****%+:;%?*********S%*****%S*****%*:::
*/

void setIO(string s = ""){
 ios_base::sync_with_stdio(false);
 cin.tie(nullptr);
 cout.tie(nullptr);
 if (!s.empty()){
	freopen((s+".in").c_str(), "r", stdin);
	freopen((s+".out").c_str(), "w", stdout);
	}
}

int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, 1, 0, -1};

const int N = 4e3;

string grid[N];
int dis[N][N];
int n, m;
bool ok(const int &x, const int &y){
	return (x >= 0 && y >= 0 && x < n && y < m && grid[x][y] != '.');
}

int main(){
	setIO();
	
	cin >> n >> m;
	for (int i = 0; i < n; i++){
		cin >> grid[i];
	}
	
	deque<pair<int, int>> d;
	d.push_front({0, 0});
	memset(dis, 0, sizeof dis);
	dis[0][0] = 1;
	int ans = 0;
	while (!d.empty()){
		pair<int, int> p = d.front();
		d.pop_front();
		int x = p.ff, y = p.ss;
		ans = max(ans, dis[x][y]);
	//	cout << x << ' ' << y;
		for (int i = 0; i < 4; i++){
			int cx = x + dx[i], cy = y+dy[i];
			if (ok(cx, cy) && !dis[cx][cy]){
				if (grid[x][y] == grid[cx][cy]){
					dis[cx][cy] = dis[x][y];
					d.push_front({cx, cy});
				} else {
					dis[cx][cy] = dis[x][y] + 1;
					d.push_back({cx, cy});
				}
			}
		}
	}
	cout << ans;
}














/*
                         Me when im restarted
++++++++++++++++*S%+*++***?%+;;;;;;*%++**+***S*;;;;;*%S%?*+;;;;+*?%SSSS#*+++***+%%?S?+*****+?@%***+***++****%?;;;;;*%**+*++?%+*S****+**%*;*%%?*+;;;;++*%%?+;;*%*+**+++*%S%+++++++?%+:;;::::::::::::::;;;         
;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++
;;;;;::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;::::::::::::::::::::::::::;;;;;;;;::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++
;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::::::::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++
;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::::::::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::::::::::::::;;;;;;;:::::::::::::::;;;:::::::::::::::::::::::::::::;;;;;;;;;;:::::::::::::::::::::::::::::::::;;;;;;;;;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;;;;+++++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;????%??**++;;;;;;;;;:::::::::::::;;;;;;:::::::::::::::::::::::::::::;;;;;;;;;;::::::::::::::::::::::::::::::::::;;;;;;;;:::::::::::::;*?;::::::::::::;;;;;;;;;;;;;;;+++++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:*#S%S#S#SSSSS%%%**+;;::::::::::::;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;:::::::::::::::::::::::::::::::::::;;;;;:::::::::::::+%#S?+:::::::::::;;;;;;;;;;;;;;;+++++
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?S%%#S#SSSSSS####S%%*+;;::::::::;:::::::::::::::::::::::::::::::::::::;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::*?#%???+::::::::::;;;;;;;;;;;;;;;+++++
++;;;;;;;;;;;;;;;;;;;;;;;;;;;;*?++?S##SSSSS####S%S%%%%??*+;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*?%%???**;:::;;::::;;;;;;;;;;;;;;;;++++
++++;;;;;;;;;;;;;;;;;;;;::::::+%??*+?%%%SS######SSSS%%%%%??*+;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*?%%????*++;;:::::::::;;;;;;;;;;;;;;++++
++++;;;;;;;;;;::::::::::::::::;*?SS?**++**??%%%SSSSS?SS%%?*++;,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*?%%??????++;::::::::::;;;;;;;;;;;;;;++++
;;;;;;;;;;;;:::::::::::::::::;;;*%#%%?*%?*++++++***??SS%%*++;,,,::,::::::::,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+?%%?*?????*;;:::::::::;;;;;;;;;;;;;;+++++
;;;;;;::::::::::::::::::::::::;;;+?%%%%S#S%?*+;;;;;;;;+***++:::::::,,,,,,,,:,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+?%S%?*?????+;:::::;;:;;;;;;;;;;;;;;;;;;+++
::::::::::::::::::::::::::::::;;;;;;+*%%S%???****++;:;:,,,:;::,,,:,,,,,,,:;+;;;:;;:,,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::?%%??*??????+;;::::;;;;;;;;;;;;;;;;;;;;;;++
::::::::::::::::::::::::::::::;;;;;:::;;***??********++;;:,,,,,,,,,,,,,:;+**++++;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*%S??**?????*+;:::::;;;;;;;;;;;;;;;;;;;;;;;+
:::::::::::::::::::::::::::::;;;;;::::::::;+*++***+++++++++;;:,,,,,...,,,:++:,:*******+;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;?S??**?????**+;:::::;;;;;;;;;;;;;;;;;;;;;;;;
::::::,::::::::::::::::::::::;;;;;;:::::::;;;;;;++++;;;;;;;;;::;;;:::::,,,,,,,:;????????+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*??***??????**;;;:::::;;;;;;;;;;;;;;;;;;;;;;;
:::::::,::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;+;;;;;;::::::,:;;;;+;;;++;;;:;:;********?+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;??*?????%??**+;;::::::;;;;;;;;;;;;;;;;;;;;;;;
:::::::,,::::::::::::::::;;;;;++++++;;;;;;;++;;+;;;;;;;;;::;::::;;;++*+*?***++;;+;;;;;;+**+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+?*?????%?***+;+;::::::;;;;;;;;;;;;;;;;;;;;;;;
:::::::::::::::::::::::::;;;;;;;;+++++++;;;;;;;;;;;;;;;;;::;;;;;;;;++++;*+**??*+***********;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*???????**+++++;::::::::;;;;;;;;;;;;;;;;;;;;;;
:::::::::::::::::::::::::::::::::;;;+++;;;;;;;;;;;;;::::::::::::;;::::::++++***++*******??**::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::**?????*+;;+**;:::::::::;;;;;;;;;;;;;;;;;;;;;;
:::::::::::::::::::::::::::,,,,:::;;+++;;;;;;;;;;;;;;;;;;::::::;;;;;;:::;;;;;++++*++*******?+::::::::::::::::::::::::::::::::::::::::::::::::;:::::;;;;;;+**??**+++;+++:::::::::::::;;;;;;;;;;;;;;;;;;;;
::::::::::::::;;;;;::::::,,,,,,,::;;+++;+++;;;;;;;;;;;;;;::::::::::::::::;;;::;;;+;;*******??+::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;++***????*+;;++;;;;::::::::::::::::::;;;;;;;;;;;;;;;;;;
::::::::::::::;;;;;;::::,,,,,,,,::;++++++++++++;;;;;;;;;;;::::::::::::::::;;:::;:;+:;+****????;::::::::::::,:::::::::::::::::::::::;;;;;;;;++***????????*?**+:::::::::::::::::::::::::::::::;;;;;;;;;;;;
:::::::::::::;;;;;;;:::,,,,,,,,::;++++++++++++;;;;;;;;;;;;:::::::::::::::::+;::;;:+;,;*++?????*;:::::::::::::::::::::::::::::::::;;;;;;++**????????????%S%%?*+;:;::::::::::::::::::::::::::::;;;;;;;;;;;
:::::;;;;:;;;;;;;;;;:::,,,,,::::;;;+++++++;;;;;;;;;;++;;;;:::::::::::::::::++;::;:;;::+****?????+:::::::::::::::::::::::::::::::;;;+**??????????????%S####S%?**+;;;;;;::::::::::::::::::::::::;;;;;;;;;;
;;;;;;;;;;;:::;;;;;;::::::::::::;;;;;++++;;:::::;;;;++++;;;:::::::::::::::,;+;;:::;;:::+*+*??????+::::::::::::::::::::::::::::;++**?????????????%S#######S#S%%?*++;;;;;;;:::::::::::::::::::::;;;;;;;;;;
;;;;;;;;;;;:::;::::::::::;;;;;::::;;;;++;;:::::::;;++++++;;;:::::::::::::,,,+++:::;+:::;*++*??????+::::::::::::::::::::::::::;**?????????????%S##@@#######S#SS%?*+;;;;;;;;;::::::::::::::::::::;;;;;;;;;
;+++;;;;::::::::::::::;;;;;;;:::::;;;;+;;:::::::::;;++++;;;;:::::::::::::,,,;++;:;;;::::+*****?????*;:::::::::::::::::::::::+*??????????%SS##@################S%?*+;;;;;;;;;;;;::::::::::::::::;;;;;;;;;
;;;;;:::::::::::::::::::::::::::::;;;;;;::::,,::::;;;;;;;;;::::::::::::,,,,,:+*;;;;+;:::;***+*?????%?;:::::::::::::::::;;;:+?????%??%%%SS################S#SS##S%?*+;;;;;;;;;;:::::::::::::::::;;;;;;;;;
:::::,,,,,,,,,,,,,,,,,,,,,:::::::::;;;;:::::,,,:::::;;;:::::::,,,,,,,,,,,,,,,:++;;++;::::;*****????%%?+;:;;;;;;;;;;;;;;;;;;+?%%%%#%%%%%SS##@##@@@######S?????S##S%%*;;;;;;;;;;;::::::::::::::::;;;;;;;;;
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::,,,,,,:::::::::::,,,,,,,,,,,,,,,,,,,;*;;;;;:::::+****?????%%%?+;:;;;;;;;;;;;;;;;;;?%%??%S%%%%SS####@@@@@@@@##?SS%%??%S#S%%+;;;;;;;;;;;:;;:::;;:::::::;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::,,,,,,,,,,::::::::,,,,,,,,,,,,,,,,,,,;++++;;,,,,,:+****????%%%%%?+;;;;;;;;;;;;;;;;;*%%%%%SS%%SSSS######@@@@##SSS#SS%?%SSSS%*;;;;;;;;;;;;;:;:::::::::::;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,,,,,;;++;:,,,,,,;*****????%%%%%%*+;;;;;;;;;;;;;;;+%%%%%SSSSS%%SSSSSSS##@@##SSSS##%?%SSS#S?;;;;;;;;;;;;;;;:::::::::::;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::,,,,,,,,,,,,;*++;:,,,,:::;****????%%%%%%%?*;;;;;;+++++++;;+%%%%%S%%%%%%SSSSSSS##@##SSSS#%??SSSSSS%+;;;;;;;;;;;;;;;:;:::::::;;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;+++;;;:::::,,,,,,,:**++:::::::::;****???%%%%%%%%%*;;++++++++++++;*%%%%%%?%%%%%S#SSSSS####SSSSS%*%#SSSS%%?+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,,,,,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;++++++;;;;:::::::::;*+;:;;;;;;;;;+***???%%%%%%%%%?;::;;;+++++++++;?%%%%#%%%SSSS%%%SSSS###SSSSSSS##SSSSS%%*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,,,,,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;+++++++++++;;;;;;;;;:;+;:++;++++++;***????%%%%%%%%?++;;;::::::::::;;*?%%SSS###S%%%%SSSSSSSSSSSSS###SSSSSSS?*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,,,,,,,,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;++++++++++++++;;;;;;;;+;;+++++++++++*?????%%%%%%%%%????**+++++++;;;;;;+*?SSSSS%%%%%SSSSSSSSSSSSSSSSSSSSSSS%*+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;++++++++++++++++++++++++::;+++++++++++*?????%%%%%%%%%%%%%%???????****+++++%%%%%%%?%%%SSSSSSSSSSSSSSSSSSSSSS%*:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;++++++++++++++++++++++++++;:+++++++++++++*????%%%%%%%%%%%%%%%%%%??????????????%%%%??%%%%%SSSSSSSSSSS##SSSSS%%%?;,,,,:;;;;;;;;;;;;;;;;;;;;;;;;;;
::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;++********++++++++++++++++++;;;+++++++++++++*?????%%%%%%???????????????????%%%????%S%%??%%%%%%SSSSSSS###SSSSS%%%?;:;;;:::;;;;;;;;;;;;;;;;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;;+*****************++++++****+;;;******++++++++**????%%%?%??????????????????????????SS%????%%%%%SSSSSS##SSSSSSS%??*+**++++++;;:;;;;;;;;;;;;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::;;++****************************+;+;**********+++*************?????????????????????????%%%%S#S??%%%SSSS###SSSSSSS%??*+++;++++;:;;;;:;;;;;;;;;;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;+******************************;;;*******************++++;;;+++++***????????????????????%%%%%%%%%SS#####SSSSS%%%?*+;::::;;;;;;;;++;;;;;;;;;;;;;;;;;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::;;+*******************************++;*******************+++;;;;;;;;;++++++*******************?*?????%%%?SSSSSSS%%%?*+;;;:,,::;;;+**+++;;;;;;;;;;;;;;;;;
,,,,,,,,,,,,,,,,,,:::;;;;;:::::::,,,,,,,,,,,,::::;+*********************************;;**********+++;;;;+++;;;:::::::;;++++++++;;+++++++++++;;;;+*****+;:+%SSSSS%%??**+;;;:,,,:::;+*%?**?;;;;;;;;;;;;;;;;
,,,,,,,,,,,,::::;;;+++++++++;;;;:::::::::::::::;;+*******************************+++;:+*****+++;;::::::;;;;::::::::::;;;+;;;;;;;;;;;;;++;;;;;;;;****+;:;+?%%%%%???***;;;:,,,:::::;+?SS%%*+;;;;;;;;;;;;;;
,,,,,,,,::::;;;++++++++++++++++;;;;;;;:::::::;;++*****************************++++++;;+++;;;;;:::::::::::::::::::::::;;;;;;;::::::::;;;;;;;;;;;;+++;::;+*?%%%????***+;;;:;;++++;;++?SSSS%**;;;;;;;;;;;;;
,,,:::::;;;;;+++++++++++++++++++;;;;;;;;;;;;+++**??*********+++++++++++++++++++++++++;;;;;;:::::::::::::::::::::::;;;;+++;;:::::::::::;;;;;;;;;;++;:,:++*?????******+;;;*****????***SSSSS?%?;;;;;;;;;;;;
::::;;;;;;;++++++++++++++++++++++;;;:::;;;;;;++****++++++;;;;;;;;;;;;;;;;;;;++++++++;:;;;;;::::::::;;;;;;:::::::;;++***++;;;:::::::::::;;;;;;;;;+;;,,:++????********+;;*****??%SSS%*SSSSS%?S+;;;;;;;;;;;
;;;+;;;;;;++++++++++++++++++++++;;::::::::::;;;;;;;;;;;;;;:::::::::::::::;;;;;;;;+++;:+++;;;;;;;+++++++;;;::::;;++******+++;;::::::::;;;;;;;;++++;:,,:+************++;+?????%SSSS##?SSSSSS?S%;;;;;;;;;;;
;++;;;;;;+++++++++++;;+++++**++;;;::::,,,::::::::::;;;;;;;:::::::::::::::;;:::;;;;+++:+*****++++++++++++++;;;;++++********++;;;::;;;;;+++++++++++:,,:;+***********+*+;*???%%SS#####%%#SSSS%SS*;;;;;;;;;;
;;;;;;;+++++++++++++++++****+++;;;;::::::::::::;;;;;;;++++;;;:::::::::::;;;;;;;;;;+*+:;*****++++++++++++++++++++************++++;+++++*****++++++:,:;++******??******?%%%%SSS#SSS##%?SSS##SSS%*;;;;;;;;;
;;;;;;;++++++++++++++++++*++;;;;;;::::::::::;;;;;;;;++++++;;:::::::::::::;;;;;;;;++*+:;++++;;;;;;+++******************????*****++*************++;,:;+++*****??*********?%%SSSSSSS##%?%#S##SSSS%+;;;;++++
;;;;;+++******++++;;;::::::::::::::::::,,:::;;;;;:::::::::::,,,,,,,,,,,,,,,::::;;;++;;:;::::::::;;++*************???*********++++*********++++++::+*+++*****?*****+;;;+*?%%SSSSSS#S%?%#S##SSSSS*;;;+++++
+;;;+++*??????**+;;:::,,,,,,,,,::::::,,,,,,,,,,::,,,,,:::,,,,,,,,,,,,,,,,,,,,:::::::::,,,:,,::::;;+********???????**++;;;;;;;;;;;;;;;+++****++++;+*+++****????***+;:;;+*??%%SSSS##S%?S#S##SSSSS?;;+++***
++++++*???????**+;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,::,,,:::;;++*?????********++;;;::::::::::::::::;;++******+***++****?????*+;:::;;+*??%%%SSS###%%##SS#S#SS%?+++***??
*++++++**?******+;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::,,,:;;;,,::;;++**?????***+++;;::::,,,,,,,,,,,,,,,,:::;++*???%?***++****??????*;:::;;++**??%SSS##@#SS##SS#SS#S??***???%%
?**++++*********++;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,:::::;;++***??????**+++;::,,,,,,,,,,,,,,,,,,,::::;+*??%SS****+******????*;::::;;+;*??%%SS###@#S####S#SS#%?????%%%%%
??**++******+++++;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,:::::::::;;;;++++****???***+++;::,,,,,,,,,,:::::::::::::;;+**%S?***++*****?????+::::;;;++*??%SSSS##@######SSSSS%????%%%%%%
??**++++++++;;;;:::,,,,,,,,,,,,,,,,,,,...,,,,,,,,,,,,,,,,,,::::;;;;:::,,,,,,,:::::::::;;;;+++++++*******++++;;::::::::::;;;;::::::::::;;++**?***+++*****?????;::::;;;+*+?%SSS###@#########S#S%????%%%%%%
?***+++;;;;::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::;;;+++****+;;::::::::;;;;;;;;;,:;+++++++++;;;;;;:;;;;;;;;+++++++++;;;;:::;::;;;;+++****+*+*****?*??*;;;;;;;+***%%SS###@@@########S#S%????%%%%%%
++++++;;;;:,,,,,,,,,,,,,,,,:::::,,,,,,,,,,,,:::;;;;;+++***************+++++++++**+++++:,:+++++++++;;;;:::;::::::;:;********+++;;;;;;;;:;++******+++****??*??;;;:::;;+**??%SS#S#@@@####S##SSSS%????????%%
;;+++++;;;:,,,,,,,,,,,,,::;:;**+;;:::::::;;+++*****?*?????*???******??*???*???????****;::********++;;;;:;::::::::;:;++*****+++;;;;;;;+++**??***+*++****??*?*;;:::;;++*?%%S####@@@@@####S#SSSS%????%%?%%%
++++++*++++;::,,,,,,,,::;;;;*%%??**++++**????????????***??*????*??????????*???????????*:+???????****+++++;;;;;;;;;+:;;++;;++;;+;::++++*+*******+;+*****??*?*::::;;+**?%%SSS##@@##@@######SSSS%??*????%%%
**?**?*????*+;;:::::::::;;;+*******+*++*++*++++++++++++;++******+***?******************:;******************+++++++++:,;;;;;;;;;;;++++*********++++++*****++;:::;;+**??%S##S###@##@@@####SSSS%%??*???????
+***??*?****+;:::::::::::::::::::::::::::::::::::::::::::::;;:;::;++;+++;;;;;+;++++++++::;++++++++++******+*??**++++;;;;:;;,:;+;;++++*******++;;;;;;+++++;:,::;++**?%%SS##S#@##@@@@@@###SSSS%%??*%??????
;+*****+++;;::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,:,,,,,:::,,:;:;;++;;;;;;;;;;;;;;;;;:;++++++++*++****++*??**+;;;;;;::;::++;;++++**;+*?%+++++******+;:,::;+++**%%%?S#########@@@@@####SSS%%??*?%%%%??
;+****+++;;::::::::;;;;;;;;;;::::::::::,,,,,,,,,,,,,,,,,,,,::,,:::;;++++++;;;;;::::::;;::;*+;;;;++*+++**++;;??**+;;++;;;::+;++;+*;:******?**+*******;:::;;++***?%SSSS%###########@@@@####SSS%%%?+?%%%%??
++*****+;*++++++++*****???****+++++++;:;;::,,,,,,,::::::;;;;;:,;;+++***+;+;;:::::::,::::,,::::,,:::;;++;+**:*%%*+++;+*;;;;++***??*+*;+*;++++*****+:,::;+**???%%SSS#SS###S#########@@@@###SSS%%%?+???????
***?????*?+????%%?%%%%%???*??????*+?*++*+;;:::,,,,:;;+++++++;;,:+++++++;:::::::::,,,,,,,:,,::,,:,,:::;;+++:;*???*:+++*+;+*+**?????*+*%?**+++***;:::;++*?%%%%SSSSSSSS###S#########@#######SSSS%?%*???????
++****????*??%???*********++;;*++*;++++++;;;:::::::;;;;;;:;;::,:;;;;;::::::,::,,,,,,,::;;,;;::;;::::;::;+;++?%?*?*;**;::+%????%?*+;;+**:+***+;:::;+*??%SSSSSSS%%%SS##SSS#################SSSSS%%*?%?????
;;++++++*********++++++;;+;;:;++++;;;;;;;;;;::;;+;;::::::,,:,,,,::::::,::::,,,,,::,:;+;:,:+;::::++::;;;:::;*???*??;;;:;+*?%***?*+;+?******;:::;++*?%SSSSSSSS%%%SS#####SS##################SSSS%%*?%?%?%%
;;;;;+++**+++++;;++++++;;;;;:::;;;;;;;;;;;;;::+++;;::::::::,,,,,,:::::::,,,,,,:::;:;;;::+;::;++;:::;;;;:::::;+??*;;+*?%%??*+;;++;+;+++*;;::;++*?%SS##SSSSS%%SS###S#@@#####################SSSSS%??%?%%%%
+++*****?****+;;:::;++;;;;;::::::;;+;++;+:;;;++++;;;;;;;;;::::::,,:::::,,,,:;+;;;:;**++?+;;*?++;;;+*;:;+;:;;:::;;;+**?%???*;;*?*+*+++;:::+**?%%S###SSSSSSSS#####S?#@########S############SSSSSSS??%%%%%S
??%%%?%S%%%?**++;;+:+++++;:;:::::;;;;;+;;;:;;:::;;;;;:;;;;;;;::;:::,,,,:::;;;+;+?;+*+;+%?+;*+++******;**+;+;;;::;+?%?*+;;++*+**+++;:::;+*?%%SS#SSSS%SSSS####SS%%?*S@##@@@@###@@@@@@@@@###SSSS%SSS%%%SSSS
?*%?%??%??****;++;;;++;;;;;;;::::::::::::::::::::::::::::::::::::::::::++**+**++??**+*?S%*?%+*?%?*?%S?*?*****+;;:::++++++**++++;::;;**??%SSSS%SS%SSSS####S%%?????*%@@@@@@@@@@@@@@@@@@##@@#SSS%%SS%%%SSSS
+;+++++++;;;;;;;;;;:;:::::;::::::::::,,,,,,,::::::,:::::::,,,,,,,:::::+***?*+?%??%%??%?**%SS?%SSS?%%%S????*?%*++++::+**++*+;;:;;+*?*?%%SSSSSSSSS######S%??***?????%@@@@@@@@@@@@@@@@@@@@@@@##SS%%SS%%%%%%
;;;;;;;;;;;;;;;::::,,::::::::::::::::::::::::::::::::;::::,,,,,,,,,:;?%*******%?%%%S#S???%SSS%S#S?%%S#S%SSSS%%?*++;;++++;;;;+*??%%%S%%SSSSSSSS#####S%?***++*?%????%#@@@@@@@@@@@@@@@@@@@@#@#SSS%%SSS%????
;;;;+;;;;;;;++;;;;;:::;;::;::;;;;;;;;;;;;;;;:::;;;;;;;:;;;::::::::;;?%%??%S%S%%?%SS%S####S##SS##SSS###SS####%S%?**+;;:;;+*?%%%S%%SSSSSS######S%%???**?%%%?%SSS%??%%#@@@@@@@@@@@@@@@@@@@##@@#SSS%%SS%**?%
+********+**+++;;;;;;;:::;;;::;;;;;;;;;;;;;;+;;:;;;;;;+;+++;;+++;+++?????%?%%?%SS##%?S##SS#S%S@##S%*++;;;;;;;;:::::;+*??%SSSSSS%SSSS#####SS%?**++*++*???%S##S%%??S%S@@@@@@@@@@@@@@@@@@@##@@@#SSS%SSS??%S
*******+****++++;;;;;;::;;:::::;;;;;;;;;;::;+;;;;;::++++++++;+++++++?%%%?*??%S#S%SSSS#####S%S#S?+;:;++++++;;:::;+**?%S%S%?SSSSSS####S%%%?**+++++++*?%%SS#SSSSSS??S%S@@@@@@@@@@@@@@@@@#%#@@@@###SSSSS%%SS
***********+;;+++;;;;;:::;:::::;;::::;;:::;;;;;;++;;;;*+++++++++++++?%%%%%SS#SSSS####S#@@#S#S*;;*??%%%S???*?***??%%SSSSSSSSSS##S%??*++*?**+++*++**%%S##SSS#S#S?*%%%%@@@@@##S#@@@@@@@@#%#@@@@@##SSSSS%%%%
+++++++++++++;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;+;;;;++++;;;+;+%%%SS###SS###@@SSS#SS##%?%%SSSS%%%*??????%%%SSS#SS#####%?**+*;;*?%?*+++++**?%SS##S####S%???%#S%#S#######@@@@@@@##%#@@@@@@#SSSSSS%??
+++++;++++++;;;;;;;;;;;;;;;;:::;;;::::;;;;;;;;;;;;;;;;;;;;;+++;;;;+++*?%SS##SS#####SS#S#S##%%S###?*+**?????*%SSS##S+?SS%#%?*++**+?++%%?*++++*???%SSSSSSS%%???**?S#S%SS#@@@@@@@@@#@@@@@@@@@@@@@#SSSSSS?**
++++++++++;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;++++;+++*++++*+********+;*??SSSSSSSSSS#######%???*++**??%%SSS%SS####S?%S%**++*****+***?**+;++++;;;+****????????*+?S##S###@@@@@@@@@@@@@@@@@@@@@@@##SSSSS???
***+****++++;;;;;++++++;+;+++;+;++;;;+++;+;++++++++++************+*++*++****?????%S######S%?****?%SSS%SSSS##SS##SS##S%**?*?*+++++++;;;;;+***+++++++*?%SSSSSSSS%%###SS#@@@@@@@@@@@@#@@@@@@@@@@@#S%S#SS%%%
************+++++++++++++++++++++++++++++*+++*+*************++***+;++*****??%%%SS#@@#####SSSSS#####%%%SS#%#####SS##S%?**+**+++++++*******????%%????***%SS############@#@@@@@@@@@@##@@@@@@@@@@@#S%%S#S%%%
????*???????*******++++++++;+++++*+++*+***+++*++*+++********++*+**+*****??S@S%S#S@@@@@@@@@#@@@@@@@#%S##S####S%##S%%%?*???%*????%?????????????%%SS%%%%%%%SSS####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SSSS##%??
????????????????***+++++++++++++++++**********+*+**********+************%%%#@##@#@#@@@###S%%S###@@@@@@@#@@@@##@##%%###SSSS%?*?%%S#SSSSS%%%%%%%%%%?%%%%%%###@@##@@@@@##@@@@@@@@@@@@@@@@@@@@@@@#SSSSSSS%??
?????????%??????****************+*****************???????????????+++***?%%?%#@#@##@##S%%%%%%#######@@#@@@@@@@@@#@##@@##@@SS%SSS######@@@#######SSS#####@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@#S######%%%%
????????????????************????**???????*????????????????%??%?***?%S%%%%%S%S@#@@#@#SS%?%SS#######@####@@#@@@@@@@@@@#S#@@###@@@@@@@@@@@@@@@@##@@@@@@@##@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@#S####S%%%%%%
????%%%%%%%????????****?*??????***?????????????????????????**?????%SSS%S#SS%S###@#@#%%####S##S######@#@@##@@@@@@@@@@##@@@@##@##@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####S%%%%%%%%
?%%%%%?%%%%%%%%%%%????????????????????????%?????%%%%%?%%%%%%%%?%S%%S%%S####S##SS@##%%S######@##@@@#@@@@@@@@@@#@@@@@@@##@@#S#@@@@#@@@@#@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@##SS%SS%%%%%%SS
%%%%%%%%%%%%%%%%%%%???????%%%%%%%%%%??%%%%%%%%%%%%%%%%S%%%%%%S%SSSSS%####S###S%S@@S%S@#S######@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@##@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@###S%%%%SS%%SSSSSS
%%%SSSSSSS%%%%%%%%%SS%%%%%%%%%%%%%%%%%%%%%%%%S%%%%%%SSSSSSSSSSSSSSSS#@##SS##@###@#SS###########@@@@@@@@@@@@#@@@##@@@@@@@@##@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SSSSSSSSS#SSSSSS%SS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%SSSSSSSSSSSSSSSSSSSSSS##SS#@@#######@@@@SSSS#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##SSSSSSSSS#S##SSSSSSSS
########SSSSSSSSSSSSSSSSSSSSSSSSSS%SSSSSSSSSSSSSSSSSSSSSSSSSSSS###@@@@##@@@#@@@@#SS##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##S######SSSSSS#SSS#####
########SSSSS####S##SS####S##########S##SSSSSS#SS##########S###S#@@@@@@@@@@##@@#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#SS######SSSSSSSS########
###################################################################@@@@@@@@@@@@#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###########################
#####################################################@@@@@@###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@#######@#@#@@@@@@@@@@@@@
################################@####@#######@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@
######################@#######???S##S??%##S???#S??%#@@#%??S@@@@S???%@@S?????????%@@@@S?????????%@#???#@@@%??%@@S???????%@@@@@@SSSSSSSS#@#SSS#@@@SSS#@@@@@#SSSS#@@@SSS#@@#SSS#@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@#@@@###@@###@@#######@@###@#:..+@@;..:#@+..;@*..,#@@#,..?@@@#:....%@+.,.......;@@@@?.........,#S...%@@@:..;@@*.......,#@@@@@;:::::::*@S:::S@@@;::?@@@%+::::::?@#;::?@S;::?@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*..:@%....%@:..?@?..,S@@S,..?@@@*..*,.:@###%...?###@@@@###S,..*###@S...?@##;..;@@*..,SSSS#@@@@@@;::*SSSS#@S:::S@@@;::?@@?:::?SS%%#@#;::??::+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@S,.,#+.;:.+#,.,#@?...,,,,...?@@S,.;@+..*@@@S...%@@@@@@@@@@@:..*@@@@S...,,,,,..;@@*...,,,:S@@@@@@;::+????@@S:::S@@@+::?@S:::%@@@@@@@#;::;::;#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;..?,.%*.,?..+@@?..,++++,..?@@;..:*;..,S@@S...%@@@@@@@@@@@:..*@@@@S...;+++,..;@@*..,+***#@@@@@@;:::;;;+#@S:::S@@@;::?@S:::%@@@@@@@#;:::;::+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*..:.,#S..,..%@@?..,#@@#,..?@?..,;;;:..;@@S...%@@@@@@@@@@@:..*@@@@S...%@@@;..;@@*..,%%%%%#@@@@@;::*@@@@@@#;::*##%:::S@@+::;%##S%#@#;::+#?::;S@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#,,..+@@;..,:#@@?.,,#@@#,,.?#:,,?@@@%,,,%@S,,,%@@@@@@@@@@@:..*@@@@S,,,%@@@;,.+@@?.,,....,S@@@@@;::*@@@@@@@S+::::::;%@@@#?;::::::*@#;::%@@%:::?@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#S###@@#SSS#@@@#SSS@@@@SSS##SSS@@@@@SSS#@@SSS#@@@@@@@@@@@#SS#@@@@@SSS#@@@#SS#@@#SSSSSSSS@@@@@@S%%S@@@@@@@@@#%%%%S@@@@@@@@S%%%%#@@@SSS#@@@#SSS@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@?**%@@@@%****%#@@@@@#**********#@?**%@@@%**?@@S***#@@@S?*+*?S#@@@@@@@@#%?*+*?S@@@?**%@@@S**?#***S@@@?**%@@@@@?***??%S@@@@@@@S?*+*?S@@@@#***S@@?**?@@@%**%@@@@@S?***?S@@@S*+;;+?@@@@@@@@@@
@@@@@@@@@@@@@@@:..+@@%:..,,,.+#@@@@S,,,....,,,S@,..*@@@+..:@@%...S@#+,.,:,.,%@@@@@@#*,..,,,.;#@@:..+@@@*..:@*..:#@?..,S@@@@@:...,,.,:%@@@%:..,,,.,:%@@S...%@@:...+@@+..;@@@?:..,,,.,%@@?:;+:..+@@@@@@@@@
@@@@@@@@@@@@@@@:..+@@;..:%##S@@@@@@@@@@;..;###@#:..+###+..:@@%..,S@S...+S#S#@@@@@@@;..:%#@#S#@@@:..+@@@*..:@@+..+S,.,S@@@@@@:..+@#*,.,%@S,..*#@#+..,S@S,..%@@:.,,.+@*..;@@?..,?#@@S#@@@@@@#;..*@@@@@@@@@
@@@@@@@@@@@@@@@:..+@@S;,..,;*%@@@@@@@@@;..;@@@@#:...,.,...:@@%..,S@@*,...:;?#@@@@@S...%@S;;;;*@@:..+@@@?..:@@@+.,:.,%@@@@@@@:..+@@@:..+@*..,#@@@#,..?@S,..%@@:.,*,.*?..;@@:..+@@;;;;+@@@@?,.:S@@@@@@@@@@
@@@@@@@@@@@@@@@:..+@@@@#%*;...?@@@@@@@@;..;@@@@#:..;?**:..:@@%..,S@@@#S?+:..:#@@@@S,..*@#+:..;@@;..+@@@*..;@@@@;..,%@@@@@@@@:..+@@S,..*@?..,S@@@S,..%@S,..%@@:..%%,.;,.;@@:..;@@+;..,#@@@*++#@@@@@@@@@@@
@@@@@@@@@@@@@@@:..+@@%;+?%?,..*@@@@@@@@;..;@@@@@:..*@@@+..:@@%...S@#+;*%%+..,#@@@@@*,..+?%+..;@@?..,*%*,..?@@@@?..,#@@@@@@@@:..;?*:..;#@#;..:?%*,..;@@S...%@@:..?@%,...;@@%,..;?%?,.,#@@#;:;S@@@@@@@@@@@
@@@@@@@@@@@@@@@;,,+@@*:,...,;?@@@@@@@@@+,,+@@@@@:,,*@@@+,,;@@%,,,S@S;:,..,:+S@@@@@@@S+:,..,,;%@@@%;,...,;%@@@@@?,,:#@@@@@@@#:,,,,,:+?#@@@@?;,...,;?@@@S,,,%@@;,,?@@?,,,;@@@#*;,...,:*@@@S,.,%@@@@@@@@@@@
@@@@@@@@@@@@@@@###@@@@@#####@@@@@@@@@@@@###@@@@@###@@@@@###@@@###@@@@@#SS##@@@@@@@@@@@@#SS##@@@@@@@#SSS#@@@@@@@####@@@@@@@@@######@@@@@@@@@@#SSS#@@@@@@###@@@###@@@@####@@@@@@##S##@@@@@@@##@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
*/

Compilation message

tracks.cpp: In function 'void setIO(std::string)':
tracks.cpp:143:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  143 |  freopen((s+".in").c_str(), "r", stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tracks.cpp:144:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  144 |  freopen((s+".out").c_str(), "w", stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 35 ms 63356 KB Output is correct
2 Correct 28 ms 63064 KB Output is correct
3 Correct 24 ms 63060 KB Output is correct
4 Correct 30 ms 63572 KB Output is correct
5 Correct 28 ms 63068 KB Output is correct
6 Correct 28 ms 63092 KB Output is correct
7 Correct 26 ms 63060 KB Output is correct
8 Correct 26 ms 63060 KB Output is correct
9 Correct 26 ms 63056 KB Output is correct
10 Correct 28 ms 63056 KB Output is correct
11 Correct 32 ms 63404 KB Output is correct
12 Correct 30 ms 63164 KB Output is correct
13 Correct 28 ms 63172 KB Output is correct
14 Correct 29 ms 63064 KB Output is correct
15 Correct 31 ms 63324 KB Output is correct
16 Correct 33 ms 63368 KB Output is correct
17 Correct 32 ms 63312 KB Output is correct
18 Correct 34 ms 63424 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 30 ms 63064 KB Output is correct
2 Correct 50 ms 64624 KB Output is correct
3 Correct 142 ms 80720 KB Output is correct
4 Correct 61 ms 67048 KB Output is correct
5 Correct 94 ms 72780 KB Output is correct
6 Correct 450 ms 95408 KB Output is correct
7 Correct 27 ms 63060 KB Output is correct
8 Correct 29 ms 63196 KB Output is correct
9 Correct 28 ms 63056 KB Output is correct
10 Correct 28 ms 63072 KB Output is correct
11 Correct 28 ms 63064 KB Output is correct
12 Correct 31 ms 63100 KB Output is correct
13 Correct 46 ms 64600 KB Output is correct
14 Correct 39 ms 64076 KB Output is correct
15 Correct 36 ms 64004 KB Output is correct
16 Correct 36 ms 63668 KB Output is correct
17 Correct 89 ms 67488 KB Output is correct
18 Correct 56 ms 67416 KB Output is correct
19 Correct 59 ms 67084 KB Output is correct
20 Correct 52 ms 66712 KB Output is correct
21 Correct 94 ms 73036 KB Output is correct
22 Correct 91 ms 72788 KB Output is correct
23 Correct 157 ms 71596 KB Output is correct
24 Correct 92 ms 72940 KB Output is correct
25 Correct 177 ms 80720 KB Output is correct
26 Correct 262 ms 126560 KB Output is correct
27 Correct 312 ms 110148 KB Output is correct
28 Correct 414 ms 95660 KB Output is correct
29 Correct 433 ms 91312 KB Output is correct
30 Correct 391 ms 100488 KB Output is correct
31 Correct 315 ms 74576 KB Output is correct
32 Correct 299 ms 100364 KB Output is correct