복권

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

문제

한 복권 회사가 글자 게임이라는 숫자 게임을 운영한다. 게임 응모용지에는 nn개의 칸이 있고, 각 칸에는 A, B, C 세 글자 중 정확히 하나를 적어 넣는다. 아래 그림은 n=10n = 10일 때 응모용지를 채운 한 가지 예이다.

당첨 문자열은 추첨 기계로 뽑는다. 기계 안에는 3n3n개의 공이 들어 있는데, A가 적힌 공이 nn개, B가 적힌 공이 nn개, C가 적힌 공이 nn개이다. 기계 윗면에는 nn개의 구멍이 한 줄로 뚫려 있고, 추첨이 시작되면 각 구멍마다 공이 정확히 하나씩 빨려 올라간다. 뽑힌 공의 글자를 왼쪽에서 오른쪽 순서로 읽으면 길이 nn인 문자열이 되며, 이것이 추첨 결과이다. 이 문자열과 똑같이 적은 응모용지는 1등에 당첨된다. 아래 그림은 위 응모용지가 당첨되는 추첨 결과를 나타낸 것이다.

그런데 이 추첨은 완전히 공정하지는 않다. 같은 종류(같은 글자)의 공끼리는 서로 밀어내어 이웃한 두 구멍에 함께 놓이는 일이 절대 없다. 따라서 위 그림과 같은 배치는 사실 불가능하며, 실제로 가능한 모든 추첨 결과에서는 이웃한 두 글자가 서로 같은 경우가 절대 없다.

당신은 이미 응모용지에 길이 nn인 문자열을 적어 두었다. 이제 이웃한 두 글자가 서로 같지 않도록 이 문자열을 고치려고 하는데, 바꾸는 칸의 수를 최대한 적게 하고 싶다. 바꾸는 각 칸에는 A, B, C 중 어느 글자든 넣을 수 있다. 바꾸어야 하는 글자의 최소 개수를 구하여라.

입력

첫째 줄에 정수 nn (2n5000002 \le n \le 500000)이 주어진다. 둘째 줄에 A, B, C로만 이루어진 길이 nn인 문자열이 주어진다. 이 문자열에는 서로 같은 글자가 이웃한 쌍이 적어도 하나 존재한다.

출력

이웃한 두 글자가 서로 같지 않게 만들기 위해 바꾸어야 하는 글자의 최소 개수를 나타내는 양의 정수 하나를 출력한다.