시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 0 0 0 0.000%

문제

빙고 게임에서 호스트는 숫자를 읽고, 각 플레이어는 자신의 빙고판에서 그 숫자를 찾는다.

각 플레이어는 1부터 N2까지 숫자가 N행 N열에 적혀있는 판를 들고 있다.

호스트가 숫자를 읽으면, 플레이어는 호스트가 부른 최근 N개의 숫자가 모두 있는 행이 있는지 찾는다. 이 때, 그 행에 써있는 숫자의 순서가 호스트가 숫자를 부른 순서가 같아야 한다. 이런 행을 찾을때마다 플레이어는 1점을 얻는다.

예를 들어, N이 3일때, 플레이어가 다음과 같은 빙고판을 들고있다고 생각해보자.

1 3 7
6 4 5
2 8 9

동혁이는 매일 빙고게임에서 꼴등을 한다. 오늘만은 일등을 하겠다고 다짐한 동혁이는 호스트가 부를 숫자의 순서가 적혀있는 종이를 훔쳐왔다. 이 때, 빙고판의 숫자를 적절히 배치했을 때, 얻을 수 있는 최대 점수는 몇인지를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 빙고판의 크기 N과 호스트가 부를 숫자의 개수 B가 주어진다. (2 ≤ N ≤ 4, 1 ≤ B ≤ 10000)

다음 B개 줄에는 호스트가 읽는 숫자가 순서대로 주어진다. 모든 숫자는 1보다 크거나 같고, N2보다 작거나 같다.

출력

첫째 줄에 얻을 수 있는 최대 점수는 몇 점인지 출력한다.

예제 입력

2 11
1
2
1
2
1
2
1
2
3
4
1

예제 출력

5

힌트