일요일 드라이브

시간 제한1초메모리 제한128 MB

문제

토요일 프로그래밍 대회에서 머리를 쥐어짠 뒤, 여유로운 일요일 드라이브로 긴장을 풀고 싶어졌다. 그런데 요즘 기름값이 너무 비싸다! 어쩌면 차선을 잘 바꿔서 주행 거리를 최소로 줄이면 돈을 아낄 수 있을지도 모른다.

여러 구간으로 이루어진 고속도로에 대한 설명이 주어진다. 모든 구간은 차선 수가 같다. 자동차는 차선 한가운데를 따라 이동하는 점이라고 생각하고, 각 차선의 너비는 10피트이다. 구간은 직선 구간과 곡선 구간 두 종류이다. 차선 변경은 직선 구간에서만 할 수 있으며, 한 차선을 옆으로 옮기는 데에는 최소 100피트의 직선 구간이 필요하다(원한다면 더 길게 써도 된다).

모든 곡선 구간은 90도로 꺾인다. 곡선 구간에서는 차선을 바꿀 수 없고, 회전하는 동안에는 반드시 차선 한가운데로 달려야 한다. 따라서 회전 중 가장자리로부터의 위치는 5피트, 15피트, 25피트 등이 된다.

고속도로에 대한 설명이 주어질 때, 곡선과 차선 변경을 포함하여 고속도로 전체를 주행하는 데 필요한 최소 총 거리를 구하여라. 출발 차선과 도착 차선은 원하는 대로 고를 수 있다. 고속도로는 자기 자신 위나 아래로 교차할 수도 있지만, 높이 변화는 아주 미미하므로 주행 거리에 미치는 영향은 신경 쓰지 않아도 된다.

직선 구간과 곡선 구간으로 이루어진 다차선 고속도로 그림

입력

입력에는 여러 개의 테스트 케이스가 있다. 각 테스트 케이스는 한 줄에 두 정수 N M으로 시작하며, $N$ ($1 \le N \le 1000$)은 구간의 수, $M$ ($2 \le M \le 10$)은 차선의 수이다.

이어지는 $N$개의 줄에는 각각 한 구간이 문자 하나와 숫자 하나를 공백 하나로 구분한 T K 형태로 주어진다. 문자 $T$는 S, L, R 중 하나이며(항상 대문자), 구간의 종류를 나타낸다. S는 직선 구간, L은 좌회전 곡선, R은 우회전 곡선이다. 직선 구간이면 $K$ ($10 \le K \le 10000$)는 구간의 길이(피트)이고, 좌회전 또는 우회전 곡선이면 $K$ ($10 \le K \le 10000$)는 고속도로 안쪽 가장자리의 반지름(피트)이다. 직선 구간이 연달아 나오는 일은 없지만, 곡선 구간은 여러 개가 연달아 나올 수 있다. 입력은 두 개의 0이 있는 줄로 끝난다.

출력

각 테스트 케이스마다 고속도로 전체를 주행하는 데 필요한 최소 거리(피트)를 한 줄에 하나씩 출력한다. 숫자는 소수점 아래 정확히 두 자리까지 반올림하여 출력한다. 불필요한 공백을 출력하지 말고, 답 사이에 빈 줄을 넣지 마라.