길 잃은 소

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

어느 맑은 날, 농부 존은 이웃 농부 마커스의 소에게 납치당했다. 억지로 얻은 휴가 자체는 개의치 않았지만, 자기 소가 모두 한자리에 모이는 것만은 확인하고 싶었다.

존의 목초지에는 $1$번부터 $N$번까지 번호가 붙어 있고, 목초지마다 소가 한 마리씩 서 있다. 헛간은 $1$번 목초지에 있다. 각 목초지에는 표지판이 $M$개 세워져 있고, $i$번 목초지의 $j$번 표지판은 $S_{i,j}$번 목초지로 가는 길을 가리킨다. 표지판이 자기가 서 있는 목초지를 다시 가리키기도 한다.

마커스의 소는 존이 지시 목록을 하나만 적어 모든 소에게 전하도록 허락했다. 지시 하나는 표지판 번호 하나다. 소는 목록의 첫 번째 번호를 읽고, 자기가 서 있는 목초지에서 그 번호의 표지판을 찾아 표지판이 가리키는 길로 간다. 새 목초지에 도착하면 목록의 두 번째 번호를 읽고 같은 방식으로 다시 이동한다. 목록이 끝날 때까지 이 과정을 반복한다. 모든 소가 같은 목록을 같은 순서로 따르므로, 지시 하나마다 모든 소가 한 번씩 움직인다.

존은 우선 소 두 마리를 한 목초지에 모으는 데 지시가 몇 개 필요한지부터 알아보려 한다. 목초지 $a$와 $b$에 대해, $a$에서 출발한 소와 $b$에서 출발한 소가 목록을 끝까지 따랐을 때 같은 목초지에 서게 되는 목록의 최소 길이를 $d(a, b)$라고 하자. 중간에 두 소가 서로 다른 목초지에 있어도 되고, 목록을 다 따른 뒤의 위치만 같으면 된다.

모든 소를 헛간에 모으는 지시 목록이 존재한다는 것이 보장된다. 따라서 모든 쌍 $a$, $b$에 대해 $d(a, b)$가 정의된다.

입력

첫째 줄에 목초지의 수 $N$과 표지판의 수 $M$이 주어진다. ($3 \le N \le 200$, $1 \le M \le 200$)

다음 $M$개 줄 중 $j$번째 줄에는 정수 $N$개 $S_{1,j}, S_{2,j}, \dots, S_{N,j}$가 주어진다. ($1 \le S_{i,j} \le N$) $S_{i,j}$는 $i$번 목초지의 $j$번 표지판이 가리키는 목초지 번호다.

출력

모든 목초지 쌍 $a < b$에 대한 $d(a, b)$의 최댓값을 출력한다.