import sys
sys.setrecursionlimit(10000)
input = sys.stdin.readline
N, M, K = map(int, input().split())
dfs_list = [[0 for i in range(M+1)] for k in range(N+1)]
answer = []
for i in range(K):
y, x = map(int, input().split())
dfs_list[y][x] = 1
def solution(column, row):
global count
if row >= M+1 or row < 1 or column < 1 or column >= N+1:
return False
if dfs_list[column][row] == 0:
return False
dfs_list[column][row] = 0
solution(column+1, row)
solution(column-1, row)
solution(column, row+1)
solution(column, row-1)
count += 1 # 1인 지점을 만났을 경우 count + 1을 해준다.
return count
for i in range(1,M+1):
for k in range(1,N+1):
count = 0 # count 0을 여기서 초기화
response = solution(k, i)
if response != False: # False가 아닌 값이 있을 때만 answer 리스트에 append
answer.append(response)
print(max(answer)) # answer 리스트에서 최댓값을 반환
백준 1012에서 주어진 조건의 지점의 개수만 구하면 된다.
재귀 함수를 쓰면 recursion 에러가 발생하는데 이번에는
sys.setrecursionlimit(10000)
으로 설정해주었다. 3000은 recursion error가 10**6은 메모리 초과랜다..ㅠㅠ