메뉴 건너뛰기

문제

00c19 KOI 열차 편성 0  

시간메모리제출 올바른 답 비율
1초64MB
9
2
22.2%


나의 횟수나의 최근 판정시도 성공 비율
72
28.6%
KOI 열차 편성  

KOI 국가에서는 이번에 새로운 철도를 건설했다. KOI 국가의 철도를 달리는 열차는 I 또는 O의 두 종류의 차량을 연결하여 편성한다. 그런데 각 차량은 서로 다른 종류로 연결되어야 하며, 열차의 맨 앞과 맨 뒤는 I 종류의 차량이어야 한다. 또한 열차는 차량이 연결된 순서대로 나열한 문자열로 표시하며, 열차의 길이는 문자열의 길이와 동일하다.

예를 들어 IOIOI 순서대로 차량을 연결하면 길이가 5인 열차를 편성할 수 있으며, OIOII, IOOII 등의 순서로는 열차 편성이 불가능하다.

처음에 모든 차량들은 2개의 주차장에 주차되어 있다. 차량들은 각 주차장 내에서 일렬로 줄 지어 있으며, 열차를 편성할 때는 <그림>과 같이 주차장에서 차량을 빼내 주차장 입구 앞에서 연결한다. 한 주차장에서 차량을 빼내는 순서는 주차장 입구에서 가장 가까운 차량부터지만 두 주차장 간의 순서는 별도로 존재하지 않는다.

 

<그림>

열차를 편성하기 전에 주차장 내의 차량을 원하는 만큼 대기용 레일로 옮길 수 있다. 일단 대기용 레일로 옮겨진 차량은 열차 편성에 사용할 수 없으며, 열차 편성이 시작된 이후에는 주차장에 있는 차량을 대기 레일로 옮길 수 없다.

열차 편성을 위해 주차장 내의 모든 차량을 빼낼 필요는 없다. 즉, 열차 편성이 완료된 뒤 주차장 내에 사용되지 않는 차량이 남아 있어도 상관없다.

KOI 국가에서는 열차를 이용하는 사람이 많을 것으로 예상하여 가능한 긴 열차를 구성하려고 한다.

두 주차장에 주차된 차량 정보는 두 종류의 문자 I, O로 이루어진 길이가 N인 문자열 S와 길이가 N인 문자열 T로 나타낸다. 각 문자는 1개의 차량을 의미하고 차량의 종류를 나타낸다. 문자열의 첫 번째 문자는 주차장 입구에서 가장 가까운 차량을 의미하며, 마지막 문자는 주차장의 가장 안쪽에 위치한 차량을 의미한다.

두 주차장에 주차된 차량 정보가 주어질 때 편성할 수 있는 열차의 최대 길이를 구하는 프로그램을 작성하시오.

입력

첫째 줄에는 \(M(1 \leq M \leq 2000)\)\(N(1 \leq N \leq 2000)\)이 공백을 사이에 두고 주어진다. \(M\)은 주차장 \(S\)에 주차된 차량들의 정보를 나타내는 문자열의 길이고, \(N\)은 주차장 T에 주차된 차량들의 정보를 나타내는 문자열의 길이다. 두 번째 줄에는 주차장 \(S\)에 주차된 차량들의 정보를 나타내는 문자열이 주어진다. 세 번째 줄에는 주차장 \(T\)에 주차된 차량들의 정보를 나타내는 문자열이 주어진다.

※ 테스트 데이터 조건
전체 테스트 데이터의 20%는 \(M \leq 10, N \leq 10 \).
전체 테스트 데이터의 50%는 \(M \leq 50, N \leq 50\).

출력

첫째 줄에 편성할 수 있는 열차 길이의 최대값을 출력한다. 만약 열차를 편성할 수 없는 경우에는 –1을 출력한다.

※ 예시 1 : 주차장 S에서 차량 1개, 주차장 T에서 차량 2개를 빼내어 대기용 레일로 이동시킨 후 주차장 S, S, T, S, S, T, T 순서로 1개씩의 차량을 빼내어 연결하면 IOIOIOI 열차를 구성할 수 있다. 그 밖에도 주차장 S에서 차량 1개, 주차장 T에서 차량 2개를 빼내어 대기용 레일로 이동시킨 후 주차장 T, T, S, S, T, S, S 순서로 1개씩의 차량을 빼내어 연결하면 길이가 7인 열차를 편성할 수 있다.

※ 예시 2 : 하나의 I 차량으로도 열차 편성이 가능함을 유념하라.

예시
1입력
5 5
OIOOI
OOIOI
출력
7
2입력
5 9
IIIII
IIIIIIIII
출력
1
위로