페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5883
서브태스크

팬케이크 2초 1024MB

문제

비타로는 팬케이크점에서 일하고 있다.

이 가게에서 가장 인기있는 메뉴는 N 장의 팬케이크가 쌓인 팬케이크 타워이다. 가게에서 만들어진 팬케이크에는 3종류의 맛이 있으며, 각각 A, B, C라고 부르기로 한다.

여기서, 팬케이크의 배열 방법이 다음 조건을 만족시키는 팬케이크 타워를 좋은 팬케이크 타워라고 부른다.

  • 모든 맛 A의 팬케이크와 맛 B의 팬케이크 세트에서 맛 A의 팬케이크는 맛 B의 팬케이크 위에 있다.

  • 모든 맛 A의 팬케이크와 맛 C의 팬케이크 세트에서 맛 A의 팬케이크는 맛 C의 팬케이크 위에 있다.

  • 모든 맛 B 팬케이크와 맛 C 팬케이크 세트에서 맛 B 팬케이크는 맛 C 팬케이크 위에 있다.

예를 들어, 팬케이크의 맛이 각각 위에서 순서대로 AABBBC, ACC, BBBB가 되어 있는 팬케이크 타워는 모두 좋은 팬케이크 타워이지만, AABABCC, CA가 되어 있는 팬케이크 타워는 모두 좋은 팬케이크 타워가 아니다.

비타로는 팬케이크 타워에 대해 다음 작업을 수행 할 수 있습니다.

  • 조작 k (2 ≤ k ≤ N) : 위에서 k 번째 팬케이크의 아래쪽에 뒤집개를 넣고 거기에서 위의 팬케이크를 뒤집는다. 즉, 위에서 k 장의 팬케이크의 배열 방법을 반전시킨다.

예를 들어, 팬케이크의 맛이 위에서부터 순서대로 ABCB가 되어 있는 팬케이크 타워에 조작 2, 조작 3, 조작 4를 각각 행한 경우, 팬케이크의 배열 방법은 BACB, CBAB, BCBA가 된다.

이제 Q 접시의 팬케이크 타워가 있고, i 접시 (1 ≤ i ≤ Q)의 팬케이크 타워는 팬케이크의 맛이 위에서부터 순서대로 S_{i_1}, S_i{_2}, …, S_{i_N}이다. 비타로는 각각의 팬케이크 타워에 대해 가능한 한 적은 횟수의 조작으로 좋은 팬케이크 타워로 만들고 싶다.

Q 접시의 팬케이크 타워의 배열 방법에 대한 정보가 주어지므로, 각각의 팬케이크 타워에 대해, 좋은 팬케이크 타워로 하는데 필요한 조작의 횟수의 최솟값을 구하는 프로그램을 작성하라.


입력

입력은 다음 형식으로 표준 입력에서 제공됩니다.

N Q

S_1

S_2

\vdots

S_Q

S_i는 길이 N의 문자열이고 S_ij 번째 문자는 S_{i_j}입니다. (1≤i≤Q, 1≤j≤N)

[제한]

2 ≤ N ≤ 13.

1 ≤ Q ≤ 100\,000.

S_{i_j}A, B, C 중 하나다 (1≤i≤Q, 1≤j≤N).


출력

표준 출력에 Q 행 출력하라. i 행째 (1 ≤ i ≤ Q)에는 i 접시의 팬케이크 타워에 대해 좋은 팬케이크 타워로 만드는 데 필요한 조작 횟수의 최솟값을 출력한다.


부분문제

번호 점수 조건
#14점

N \le 5, Q=1

#210점

N \le 5

#360점

Q=1

#426점

추가 제한 없음


예제1

입력
53
ABCBA
CCBAB
AAAAA
출력
3
2
0

첫 번째 접시 팬케이크 타워의 경우 다음 세 가지 작업을 수행하여 좋은 팬케이크 타워를 만들 수 있습니다.

동작 4를 수행한다. 팬케이크의 맛은 위에서부터 순서대로 BCBAA입니다.

동작 2를 수행한다. 팬케이크의 맛은 위에서부터 순서대로 CBBAA입니다.

동작 5를 수행한다. 팬케이크의 맛은 위에서부터 순서대로 AABBC입니다.

2회 이하의 조작에 의해 좋은 팬케이크 타워로 하는 것은 불가능하므로, 1행째에 3을 출력한다.

두 번째 접시 팬케이크 타워의 경우 다음 두 가지 작업을 수행하여 좋은 팬케이크 타워를 만들 수 있습니다.

동작 5를 수행한다. 팬케이크의 맛은 위에서부터 순서대로 BABCC입니다.

동작 2를 수행한다. 팬케이크의 맛은 위에서부터 순서대로 ABBCC입니다.

1회 이하의 조작에 의해 좋은 팬케이크 타워로 하는 것은 불가능하기 때문에, 2행째에 2를 출력한다.

3 접시째의 팬케이크 타워의 경우, 이미 좋은 팬케이크 타워로 되어 있으므로 조작을 할 필요가 없다. 따라서 세 번째 줄에 0을 출력합니다.


예제2

입력
25
AC
AC
AC
AC
AC
출력
0
0
0
0
0

예제3

입력
131
ABCCABCBACBAA
출력
9

예제4

입력
134
CCAAACBAAAABB
BBBCCBCCCBCBC
CCCAAAABBBBBB
AABCBCACBACBA
출력
4
6
2
10

출처

JOI 2021 예선2

역링크