게놈

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

문제

비교유전학을 연구하는 생물학자들이 여러 종에 걸쳐 보존된 유전자 서열을 찾고 있습니다.

집합 {1,2,,n}\{1, 2, \dots, n\}의 각 수가 하나의 유전자를 나타낸다고 합시다. 각 종은 자신의 유전자 배열 순서를 나타내는 1,2,,n1, 2, \dots, n의 순열 하나로 표현됩니다. 유전자 서열 x1,x2,,xkx_1, x_2, \dots, x_k가 주어진 종들의 집합에서 보존된 유전자 서열이라는 것은, 이 서열이 각 종의 유전자 배열 순서의 (반드시 연속일 필요는 없는) 부분 수열이라는 뜻입니다.

표준 입력으로 유전자 배열들의 정보를 읽어들여, 가장 긴 보존된 서열의 길이를 구한 뒤 표준 출력으로 출력하는 프로그램을 작성하세요.

입력

첫째 줄에는 공백 하나로 구분된 두 정수 nnmm이 주어지며, 1n5001 \le n \le 500, 1m201 \le m \le 20입니다. nn은 유전자의 수이고 mm은 종의 수입니다. 이어지는 mm개의 줄에는 각 종의 게놈이 한 줄에 하나씩, 1,2,,n1, 2, \dots, n의 순열을 공백으로 구분하여 주어집니다.

출력

가장 긴 보존된 유전자 서열의 길이를 나타내는 정수 하나를 출력합니다.