얀 아저씨는 한 변의 길이가 n인 정사각형 모양의 넓은 숲을 가지고 있습니다. 숲에는 나무가 격자 모양으로 심어져 있어, 각 행에 n그루씩, 각 열에 n그루씩 모두 n2그루의 나무가 있습니다. 나무마다 나이가 정해져 있습니다.
얀 아저씨는 넓이가 d인 집을 지으려고 합니다. 그러려면 숲의 일부를 베어 내야 하는데, 나무 한 그루가 넓이 1을 차지하므로 정확히 d그루를 베어 내야 합니다. 베어 내는 나무들이 이루는 영역은 반드시 상하좌우로 맞닿아 하나로 이어져 있어야 합니다(대각선 방향으로만 닿은 것은 이어진 것으로 보지 않습니다).
얀 아저씨는 베어 낸 나무들 중 가장 나이가 많은 나무의 나이를 되도록 작게 만들고 싶어 합니다. 이때 가능한 최솟값을 구하세요.
첫째 줄에 두 정수 n과 d가 공백으로 구분되어 주어집니다(1≤n≤1000, 1≤d≤n2). 각각 숲 한 변의 길이와 얀 아저씨가 지으려는 집의 넓이를 뜻합니다.
이어지는 n개의 줄에는 각각 n개의 정수 w(i,k)가 주어집니다(1≤w(i,k)≤109). 이는 위에서 i번째 행, 왼쪽에서 k번째 열에 있는 나무의 나이를 뜻합니다.
정확히 d그루로 이루어진 연결된 영역들 가운데, 베어 낸 나무 중 가장 나이가 많은 나무의 나이를 최소로 만들었을 때 그 최솟값을 한 줄에 출력합니다.