Текстовий редактор#8369

Текстовий редактор

1 секунда
64 мегабайти
Складна

Уявіть, що вас узяли на роботу у велику софтверну компанію і ви стали розробником потужного текстового редактора. Сучасний текстовий редактор містить чимало функцій, але його розробку спрощує модульний підхід: усю функціональність редактора можна розбити на окремі функції й бібліотеки, які може розробляти окрема команда чи навіть один програміст.

Текст формується так: користувач щоразу додає по одному слову або в кінець, або на початок тексту, відокремлюючи його пробілом від попередніх чи наступних слів. Один рядок у редакторі може містити не більше ніж символів (включно з пробілами). Редактор застосовує стандартне перенесення слів: перше слово, яке не вміщається на поточному рядку, переноситься на наступний. Якщо два послідовних слова розділяються перенесенням, пробіл між ними зникає.

Вхідні дані

У першому рядку містяться два натуральних числа і (1 \leq L, N \leq 10^5): максимальна кількість символів у рядку та загальна кількість операцій з редактором.

Кожен із наступних рядків описує одну з трьох можливих операцій:

  1. Додати слово довжини (1 \leq w \leq L) у кінець тексту.

  2. Додати слово довжини (1 \leq w \leq L) на початок тексту.

  3. Дізнатися, скільки зараз рядків займає текст.

Для операцій типу 1 чи 2 у рядку вказано два числа: тип операції та довжину слова . Для операції 3 — лише тип операції. Перша операція у вхідних даних завжди буде типу 1 або 2 (тлумачаться однаково: додавання першого слова у порожній текст). У вхідних даних гарантовано є хоча б одна операція 3.

Вихідні дані

Для кожної операції 3 випишіть актуальну кількість рядків у тексті на момент запиту, кожну з нового рядка.

Приклади

Приклад 1

Loading
Loading

Оцінювання

Підзадача

Бали

Додаткові обмеження

Необхідні підзадачі

0

0

Приклади з умови

—

1

8

L \leq 2

—

2

8

Сумарна довжина всіх слів не перевищує

—

3

7

N \leq 1000 та немає операцій типу 2

—

4

14

Немає операцій типу 2

3

5

7

N \leq 1000 та немає операцій типу 1

—

6

16

Немає операцій типу 1

5

7

7

N \leq 1000

3, 5

8

33

Без додаткових обмежень

0, 1, 2, 3, 4, 5, 6, 7