성적 그래프

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

문제

유령 아디(Adi)는 프로그래밍 대회 Ghostcoder에 열심히 참가합니다. 매 대회마다 풀어야 할 문제는 정확히 22개이므로, 한 대회의 성적은 푼 문제의 개수인 00, 11, 22 중 하나로 나타낼 수 있습니다.

아디는 참가한 대회의 성적을 순서대로 꼼꼼히 기록해 두었습니다. 이제 친구들에게 자신의 성장을 자랑하려고 합니다. 즉, 기록한 성적 중 일부를 대회 순서를 유지한 채 골라서, 고른 성적이 그리는 그래프가 한 번도 내려가지 않도록(각 성적이 바로 앞에 고른 성적보다 작지 않도록) 하면서, 고른 성적의 개수를 최대로 만들고 싶습니다.

대회 성적 기록이 주어질 때, 아디가 만들 수 있는 이러한 그래프의 최대 길이를 구하세요.

입력

첫째 줄에 아디가 참가한 대회의 수 nn (1n1061 \le n \le 10^6)이 주어집니다.

둘째 줄에 아디의 대회별 성적을 나타내는 nn개의 정수가 순서대로 공백으로 구분되어 주어집니다. 각 성적은 00, 11, 22 중 하나입니다.

출력

첫째 줄에 아디가 얻을 수 있는, 한 번도 감소하지 않는 가장 긴 성적 그래프의 길이를 정수 하나로 출력합니다. 여기서 그래프가 감소하지 않는다는 것은, 고른 성적들을 대회 순서대로 나열했을 때 각 성적이 바로 앞의 성적보다 크거나 같다는 뜻입니다.