Strongbox
시간 제한1초메모리 제한128 MB
k개의 다이얼 위치 중 마지막 하나만 금고를 여는 상황에서, 닫힘 성질 (x+y) mod n을 만족하는 열림 위치 개수의 최댓값을 구한다.
문제
바이테아사르(Byteasar)는 도난 방지 장치를 시험하고 인증하는 일을 한다. 그는 새로운 종류의 금고를 시험용으로 받았는데, 바로 조합 금고(combinatorial safe)이다. 회전식 다이얼로 여는 점은 보통의 다이얼 금고와 같지만, 열리는 방식이 다르다.
다이얼은 번부터 번까지 번호가 매겨진 가지 위치로 맞출 수 있다. 이 위치들 중 일부는 금고를 열고, 나머지는 열지 못한다. 금고를 여는 위치들의 집합에는 다음과 같은 조합적 성질이 있으며, 금고의 이름도 여기서 비롯된다. 즉, 와 가 모두 여는 위치라면 역시 여는 위치이다. 이 성질은 인 경우에도 성립한다.
바이테아사르는 서로 다른 개의 위치 를 시도했다. 이 중 앞의 개 로는 금고가 열리지 않았고, 오직 마지막 위치 로만 열렸다. 그는 남은 위치를 더 시도할 생각이 없다. 그가 시도해 본 위치들로부터 알 수 있는 정보만으로, 금고를 열 수 있는 위치의 최대 개수를 구하여라.
입력
첫째 줄에 두 정수 과 가 공백 하나로 구분되어 주어진다. 이고 이다.
둘째 줄에 서로 다른 개의 정수 가 공백 하나로 구분되어 주어진다. 이다.
입력은 항상 위 설명을 만족하는 어떤 조합 금고에 대응하도록 주어진다. 즉, 위치 로는 열리지 않고 위치 로는 열리는 금고가 반드시 존재한다.
출력
금고를 열 수 있는 다이얼 위치의 최대 개수를 정수 하나로 첫째 줄에 출력한다.