당신이 근무하는 회사는 멋진 그림을 그릴 수 있는 플로터(plotter) 장치를 생산합니다. 특수 하드웨어가 없는 고객을 위해, 플로터의 동작을 흉내 내어 그 그림을 화면에 출력하는 에뮬레이션 드라이버를 작성해야 합니다.
플로터는 다음 몇 가지 그리기 명령으로 구동됩니다.
POINT x y — 주어진 좌표에 작은 원을 찍습니다.TEXT x y txt — 주어진 좌표에 한 줄의 문자열을 표시합니다.LINE x1 y1 x2 y2 — 지정한 두 점 사이에 선을 그립니다.CLEAR x1 y1 x2 y2 — 지정한 직사각형 영역을 지웁니다.PRINT — 출력 페이지를 인쇄하고 현재 작업을 종료합니다.에뮬레이션 드라이버는 몇 개의 ASCII 문자로 그림을 표현하며, 문자 하나가 좌표계의 기본 단위입니다. 왼쪽 위 문자의 좌표는 (1, 1)이고, X축은 오른쪽, Y축은 아래쪽을 향합니다.
각 명령은 다음과 같이 처리됩니다.
o를 찍습니다.-), 파이프(|), 슬래시(/), 백슬래시(\) 중 하나의 문자로 이루어집니다.+), 마이너스(-), 파이프(|) 문자로 만든 테두리로 감싸 인쇄합니다.한 문자 위에 여러 대상이 겹쳐 그려질 때는 다음 규칙을 따릅니다.
+)가 됩니다.x가 됩니다.*)가 표시됩니다.드라이버에 스크립트가 주어지기 전, 특별한 전처리기가 모든 잘못된 명령을 걸러 냅니다. 따라서 모든 좌표는 페이지 범위 안에 있다고 가정할 수 있습니다. 또한 LINE 명령에서 두 점은 항상 서로 다르며, 선은 반드시 수직, 수평, 또는 두 축에 대해 45° 각도 중 하나입니다. LINE과 CLEAR 명령에서 두 점의 상대적 위치에 대한 가정은 없습니다. TEXT 명령의 문자열은 항상 대문자와 숫자로만 이루어집니다.
입력은 여러 개의 스크립트로 이루어집니다. 각 스크립트는 공백으로 구분된 두 정수 X와 Y가 있는 줄로 시작하며($1 \le X, Y \le 75$), 이 값은 페이지의 크기를 나타냅니다. 이후의 각 줄에는 위 명령 중 정확히 하나가 담깁니다. 명령은 항상 대문자이고, 명령의 인자들은 하나의 공백으로 구분됩니다.
PRINT 명령은 항상 스크립트의 마지막 명령입니다. PRINT 뒤에는 새로운 스크립트가 시작됩니다. 입력은 두 개의 0으로 끝나며, 이는 스크립트로 간주하지 않습니다.
각 스크립트에 대해 위에서 설명한 대로 만들어진 그림을 출력합니다. 서로 이웃한 두 그림 사이에는 빈 줄 하나를 둡니다.