B. Язык для машин
ограничение по времени на тест
0.25 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Препроцессинг одного из языков, предназначенного для управления оборудованием, состоит из следующих этапов:

  1. Удаление пустых строк. Строка считается пустой, если содержит только пробельные символы.
  2. Склейка строк, имеющих на конце символ переноса строки. Символом переноса является символ доллара $, за которым может следовать любое количество пробельных символов. Склейка осуществляется следующим образом: из потока символов исключаются символы, начиная с доллара, и следующие за ним пробельные символы до конца строки (включая сам перевод строки).
  3. Удаление строк с комментариями. В языке есть только однострочные комментарии. Строки с комментарием начинаются с двойного знака доллара: $$, за которыми следует как минимум один непробельный символ. С начала строки и до двойного доллара $$ допустимы только пробельные символы – наличие перед ним иных символов означает, что это не комментарий.

    Комментарий продолжается до конца строки и не может быть перенесен на следующую с помощью символа переноса. Строка комментария удаляется целиком, включая ведущие пробельные символы (если они есть).

Пробельными символами в языке считаются пробелы (код 32) и табуляции (код 9).

Программа всегда завершается пустой строкой.

Преобразования осуществляются в указанном порядке:

  • Первый пункт применяется ко всему входному потоку – после него в потоке не остается пустых строк.
  • Второй пункт применяется ко всем строкам потока, с учетом того, что начальная строка, участвующая в склейке, не может быть комментарием.
  • Для получившегося потока выполняется третий пункт.

Напишите программу, которая произведет препроцессинг описанного типа.

Входные данные

На вход подается программа, состоящая как минимум из одной непустой программной (не комментарий), строки. Программа может содержать только символы ASCII с кодами от 32 до 127, табуляции (код 9), переводы строк в виде комбинации символов с кодами 13 (CR) и 10 (LF) в указанном порядке.

Размер входной программы не превосходит 64КБ.

Выходные данные

На выход подается программа, содержащая как минимум одну непустую строку, преобразованная по указанным выше правилам.

Примеры
Входные данные
EXAMPLE PROGRAM

Выходные данные
EXAMPLE PROGRAM
Входные данные

EXAMPLE $
PROGRAM

Выходные данные
EXAMPLE PROGRAM
Входные данные
$$ COMMENT
EXAMPLE

Выходные данные
EXAMPLE