주차장

입구에서 가장 가까운, 차량 길이 이상인 빈 공간에 차를 주차하는 주차장을 시뮬레이션하고, 입차에 성공한 차량의 요금 합계를 구한다.

보통6시뮬레이션구현배열구간면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

주차장은 차량을 한 줄로만 세울 수 있는 좁고 긴 땅을 쓴다. 차량은 앞뒤로 나란히 서고, 요금은 차량의 크기와 주차 시간에 관계없이 한 대당 10레알로 고정이며 입구에서 받는다. 주차장이 붐비기 때문에 도착한 차량이 모두 자리를 얻지는 못한다.

차량이 도착하면 안내원은 먼저 그 차량이 들어갈 자리가 있는지 확인한다. 안내원은 주차장을 입구에서 끝까지 걸어가면서 비어 있고 길이가 차량의 길이보다 크거나 같은 공간을 찾는다. 시간과 힘을 아끼려고 안내원은 조건에 맞는 첫 번째 공간, 즉 입구에 가장 가까운 공간을 고른다.

자리를 찾으면 안내원은 입구로 돌아와 차량을 몰고 가서 찾은 공간의 맨 앞에 세운다. 조건에 맞는 공간이 없으면 차량은 주차장에 들어가지 못하고 요금도 받지 않는다. 한 번 세운 차량은 주차장을 떠나는 순간까지 움직이지 않는다.

주차장 주인은 안내원이 주차한 차량에게서 요금을 제대로 받았는지 알고 싶어 한다. 차량의 도착과 출발 목록이 주어질 때 주차장의 예상 총매출을 구하는 프로그램을 작성하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 정수 CCNN이 주어진다(1C10001 \le C \le 1000, 1N100001 \le N \le 10000). CC는 주차장의 길이를 미터로 나타내고, NN은 일어난 사건, 즉 차량의 도착과 출발의 총 개수다. 이어지는 NN개의 줄은 각각 도착 하나 또는 출발 하나를 나타낸다.

도착을 나타내는 줄에는 문자 C와 정수 PP, QQ가 공백 하나로 구분되어 주어진다(1000P99991000 \le P \le 9999, 1Q10001 \le Q \le 1000). PP는 차량의 번호판이고 QQ는 차량의 길이다. 출발을 나타내는 줄에는 문자 S와 정수 PP가 공백 하나로 구분되어 주어지고, PP는 차량의 번호판이다. 사건은 일어난 순서대로 주어진다.

각 테스트 케이스가 시작할 때 주차장은 비어 있다. 차량은 실제로 주차되어 있을 때만 주차장을 떠나고, 도착하는 차량의 번호판은 이미 주차되어 있는 차량의 번호판과 같지 않다. 입력은 파일의 끝에서 끝난다.

출력

각 테스트 케이스마다 주차장의 매출을 레알 단위의 정수로 한 줄에 출력한다.