Армійські Друзі#5740

Армійські Друзі

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

Nlogonia веде безжальну війну проти сусідньої країни Кубіконії. Головний генерал армії Нлогонії вирішив атакувати ворога лінійним строєм солдатів, які будуть просуватися разом, поки не завоюють сусідню країну. Перед битвою головний генерал наказав, щоб кожен солдат в атакуючому ряді, окрім захисту себе та атаки, також захищав своїх двох (найближчих) сусідів у ряді, одного зліва і одного справа. Головний генерал сказав солдатам, що для кожного з них його "товаришами" будуть ці два сусіди, якщо такі сусіди існують (оскільки у крайнього лівого солдата немає лівого сусіда, а у крайнього правого солдата немає правого сусіда). Головний генерал також сказав солдатам, що захист їхніх товаришів є дуже важливим, щоб запобігти розриву атакуючого ряду. Настільки важливим, що якщо лівий або правий товариш солдата буде вбитий, то наступний живий сусід зліва або справа від солдата, відповідно, повинен стати його товаришем.

Битва запекла, і багато солдатів в атакуючому ряді гинуть від вогню, гранат і бомб. Але, дотримуючись наказів головного генерала, відразу після отримання інформації про втрати в атакуючому ряді, відділ інформаційних систем армії повинен повідомити солдатам, хто їхні нові товариші.

Вам надано кількість солдатів в атакуючому ряді та послідовність звітів про втрати. Кожен звіт про втрати описує групу суміжних солдатів в атакуючому ряді, які щойно були вбиті в битві. Напишіть програму, яка для кожного звіту про втрати виводить нових товаришів, що утворилися.

Вхідні дані

Кожен тестовий випадок описується кількома рядками. Перший вхідний рядок містить два цілі числа та , які відповідно представляють кількість солдатів в атакуючому ряді та кількість звітів про втрати (1 \le B \le S \le 10^5). Солдати ідентифікуються різними цілими числами від до відповідно до їх позицій в атакуючому ряді, де - це крайній лівий солдат, а - крайній правий солдат. Кожен з наступних вхідних рядків описує звіт про втрати, використовуючи два цілі числа (ліворуч) та (праворуч), що означає, що солдати від до були вбиті (1 \le L \le R \le S). Ви можете припустити, що до цього моменту ці солдати були живі і щойно були вбиті.

Останній тестовий випадок супроводжується рядком, що містить два нулі.

Вихідні дані

Для кожного тестового випадку виведіть B+1 рядків. У -му вихідному рядку напишіть нових товаришів, що утворилися після видалення з атакуючого ряду солдатів, які щойно були вбиті згідно з -м звітом про втрати. Тобто, для звіту про втрати ' ', виведіть першого живого солдата зліва від і першого живого солдата справа від . Для кожного напрямку виведіть символ '*' (зірочка), якщо в цьому напрямку немає живого солдата. Виведіть рядок, що містить один символ '-' (дефіс) після кожного тестового випадку.

Приклади

Приклад 1

Loading
Loading