Зимние дороги
Зима близко, и жители Винтерфелла готовятся к долгим месяцам впереди. Одной из основных забот является поддержание дорог и мостов в рабочем состоянии, чтобы линии снабжения оставались непрерывными в течение сезона.
Гражданские инженеры Винтерфелла хотят смоделировать возможные сценарии отказа дорог и необходимых ремонтов. В их модели каждая дорога соединяет две достопримечательности в городе, и у каждой дороги есть определенная грузоподъемность. Грузовики перемещаются от одной достопримечательности к другой и могут ездить только по дорогам, которые выдерживают их вес. В частности, грузовик с весом w может ехать по дороге с грузоподъемностью c только в том случае, если w ≤ c. По естественным причинам или случайно, грузоподъемность дороги может со временем уменьшаться. Кроме того, ремонты могут увеличивать грузоподъемность дороги. Пока дороги меняются, грузовики все равно должны иметь возможность добираться от источника к пункту назначения, и инженеры хотят проверить, могут ли грузовики по-прежнему выполнять определенные маршруты между достопримечательностями.
Учитывая серию изменений дорог и некоторые маршруты грузовиков, помогите инженерам проверить, могут ли поставки по-прежнему доставляться, когда наступает зима.
Входные данные
Входные данные содержат несколько тестовых случаев. Каждый тестовый случай начинается с строки с двумя целыми числами n, m (1 ≤ n ≤ 1000, 1 ≤ m ≤ 100000), где n — количество достопримечательностей, а m — количество дорог между ними. Далее следуют m строк, каждая из которых содержит три целых числа a, b и c (1 ≤ a, b ≤ n и 1 ≤ c ≤ 1000000000), представляющие дорогу между достопримечательностями a и b с грузоподъемностью c. Дороги нумеруются 1, 2, 3, …, m в порядке их появления во входных данных.
Далее идет строка с одним целым числом e (1 ≤ e ≤ 100000), обозначающим количество событий. Далее следуют e строк, каждая из которых состоит из заглавной буквы, за которой следуют целые числа:
B r c: Указывает, что дорога r выходит из строя. Ее грузоподъемность уменьшается до c. (1 ≤ r ≤ m, 1 ≤ c < 1000000000)
R r c: Указывает, что дорога r отремонтирована. Ее грузоподъемность увеличивается до c. (1 ≤ r ≤ m, 1 < c ≤ 1000000000)
S a b w: Проверьте, может ли грузовик с весом w проехать от достопримечательности a до достопримечательности b. (1 ≤ a, b ≤ n, 1 ≤ w ≤ 1000000000)
Появятся только заглавные буквы B, R или S. Все события происходят в порядке, указанном во входных данных. Во входных данных будет не более 2000 событий поломки / ремонта. Ввод заканчивается строкой с двумя 0.
Выходные данные
Для каждого запроса S a b w, в порядке, выведите 1, если существует путь от a до b, который может выдержать грузовик с весом w, и 0, если такого пути нет. Выведите каждое число на отдельной строке, без пробелов. Не печатайте пустые строки между выводами.