아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

게놈

시간 제한2초메모리 제한512 MB

요약
주어진 모든 순열에 부분 수열로 들어 있는 가장 긴 수열의 길이를 구합니다.
난이도

보통10점 중 6점

유형
그래프, 동적 계획법
정답자
아직 제출이 없습니다

문제

비교유전체학에서 생물학자는 여러 종에 공통으로 보존된 유전자 서열을 찾으려고 한다.

{1,2,…,n}\{1, 2, \ldots, n\}은 정수 nn개로 이루어진 집합이고, 각 정수는 유전자 하나를 뜻한다. 종은 mm개이고 각각을 S1,S2,…,SmS_1, S_2, \ldots, S_m이라고 하자. 종 SiS_i는 {1,2,…,n}\{1, 2, \ldots, n\}의 순열 하나로 주어지며, 이 순열이 SiS_i에서 유전자가 놓인 순서다.

정수 수열의 부분 수열은 원래 수열에서 정수를 하나도 지우지 않거나 하나 이상 지워서 얻는다. 정수 수열 x1,x2,…,xkx_1, x_2, \ldots, x_k가 모든 i=1,2,…,mi = 1, 2, \ldots, m에 대해 SiS_i의 부분 수열이면, 이 수열을 mm개 종의 보존 유전자 서열이라고 부른다. mm개 종의 보존 유전자 서열 중 가장 긴 것의 길이를 구하라.

입력

첫째 줄에 정수 nn과 mm이 공백을 사이에 두고 주어진다. (1≤n≤1001 \le n \le 100, 1≤m≤101 \le m \le 10)

다음 mm개 줄에는 각 줄마다 1,2,…,n1, 2, \ldots, n의 순열이 주어지고, 인접한 두 정수는 공백으로 구분한다.

출력

가장 긴 보존 유전자 서열의 길이를 정수 하나로 출력한다.

힌트

다음 3개 종을 생각해 보자.

  • 5, 3, 4, 1, 2
  • 2, 5, 4, 3, 1
  • 5, 2, 3, 1, 4

아래 네 수열

  • 5, 1
  • 5, 3
  • 5, 4
  • 3, 1

은 모두 이 3개 종의 보존 유전자 서열이지만 가장 길지는 않다. 가장 긴 보존 유전자 서열은 5, 3, 1이다.

예제1

  1. 예제 1

    입력
    5 3
    5 3 4 1 2
    2 5 4 3 1
    5 2 3 1 4
    
    예상 출력
    3