구슬

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

문제

바이테아사르는 목걸이를 만들기로 했다. 그래서 색색의 산호 구슬이 길게 꿰어진 줄 하나를 아주 싼 값에 사들였다. 그에게는 양의 정수 kk (k>0k > 0)를 정하면 그 줄을 앞에서부터 구슬 kk개씩 연속된 조각으로 잘라 주는 기계도 있다. 즉 첫 번째 조각은 1,,k1, \dots, k번 구슬, 두 번째 조각은 k+1,,2kk+1, \dots, 2k번 구슬, 이런 식으로 이어진다. 전체 구슬 수가 kk의 배수가 아니면, 마지막에 남는 (길이가 kk보다 짧은) 조각은 버린다. 각 구슬의 색은 양의 정수로 나타낸다.

다양함을 좋아하는 바이테아사르는 잘라 낸 조각들 가운데 서로 다른 조각이 가장 많아지도록 kk를 고르고 싶다. 줄 전체에는 정해진 시작과 끝이 있으며, 이 두 끝은 서로 바꿀 수 없다. 기계는 항상 시작 쪽에서부터 자른다. 다만 잘라 낸 한 조각 안에서는 양쪽 끝을 서로 바꿀 수 있어서, 조각을 어느 방향으로 읽어도 같은 것으로 본다. 예를 들어 조각 (1,2,3)(1,2,3)(3,2,1)(3,2,1)은 같은 조각이다. 바이테아사르를 위해 최적의 kk 값을 구하는 프로그램을 작성하라.

입력

첫째 줄에 줄에 꿰어진 구슬의 개수 nn (1n2000001 \le n \le 200\,000)이 주어진다. 둘째 줄에는 시작 쪽부터 차례대로 각 구슬의 색을 나타내는 양의 정수 nna1,a2,,ana_1, a_2, \dots, a_n (1ain1 \le a_i \le n)이 공백 하나로 구분되어 주어진다.

출력

첫째 줄에 두 정수를 공백 하나로 구분하여 출력한다. 하나는 kk를 어떻게 고르든 얻을 수 있는 서로 다른 조각 수의 최댓값이고, 다른 하나는 그 최댓값을 이루는 kk 값의 개수 ll이다. 둘째 줄에는 그러한 kkll개를 오름차순으로 공백 하나로 구분하여 출력한다.