문명
시간 제한2초메모리 제한512 MB
N x N 격자에서 K개의 시작 칸이 주어지고 문명이 매년 상하좌우로 한 칸씩 퍼질 때, 모든 문명이 하나로 합쳐지는 최소 연수를 구한다.
문제
문명은 홀로 발전하기도 하고, 서로 다른 문명이 만나 하나로 합쳐지기도 한다. 이 가설을 바탕으로 세계 문명의 발전 과정을 시뮬레이션한다.
세계는 크기의 2차원 공간이다. 한 변의 길이가 1인 정사각형이 가로와 세로로 개씩 놓여 있고, 가장 왼쪽 아래 정사각형의 위치는 , 가장 오른쪽 위 정사각형의 위치는 이다. 두 정사각형 와 은 다음 두 조건 중 하나를 만족할 때 서로 인접하다.
- 이고 이다.
- 이고 이다.
문명의 최초 발상지는 서로 다른 곳이다. 각 정사각형은 문명 지역이거나 미개 지역이고, 발상지는 모두 문명 지역이다. 발상지끼리 인접해 있으면 처음부터 하나로 결합된다. 한 해가 지날 때마다 문명 지역은 인접한 지역으로 문명을 전파한다. 즉 정사각형 가 문명 지역이면 다음 해에는 세계의 경계를 벗어나지 않는 , , , 이 모두 문명 지역이 된다. 인접한 두 지역에 서로 다른 문명이 전파되었거나 한 지역에 둘 이상의 문명이 전파되면 그 문명들은 결합된다. 결합은 간접적으로도 이어진다. 문명 A와 문명 B가 결합하고 문명 B와 문명 C가 결합하면 A와 C도 하나의 문명이다.

위 그림은 이고 발상지가 , , , 인 경우다. 과 은 인접하므로 처음부터 결합되어 있다. 왼쪽은 1년 뒤, 오른쪽은 2년 뒤의 문명 지역이며, 2년이 지나면 네 발상지의 문명이 모두 하나가 된다. 의 문명과 의 문명은 직접 맞닿지 않았지만 과 의 문명을 거쳐 결합된다.
세계의 크기와 발상지의 수 및 위치가 주어질 때, 모든 문명이 하나로 결합되기까지 걸리는 최소 햇수를 구하는 프로그램을 작성하시오.
입력
첫 줄에 세계의 크기 ()과 문명 발상지의 수 ()가 주어진다. 다음 개의 줄에는 발상지에 해당하는 정사각형의 위치 와 가 한 줄에 하나씩 주어진다(). 발상지 곳의 위치는 모두 다르다.
출력
모든 문명이 하나로 결합되기까지 걸리는 최소 햇수를 정수 하나로 출력한다.