Олимпиадный тренинг

Задача . H. Определи робота


Вы успешно предсказали станцию, на которой выйдет бедный Аркадий и нашли его. Вы отправили его домой на такси и внезапно задумались над следующим вопросом.

В вашем городе есть \(n\) перекрёстков и несколько двусторонних дорог, их соединяющих. Назовём путь из одного перекрёстка в другой поездкой на такси, если он не проезжает ни один перекрёсток более одного раза. Вы собрали коллекцию поездок, которую совершил один водитель и теперь размышляете, может ли этот водитель быть роботом, или он точно человек.

Вы считаете, что водитель может быть роботом, если для любой пары перекрёстков \(a\) и \(b\) этот водитель всегда едет по одному и тому же пути, когда едет из \(a\) в \(b\). Обратите внимание, что \(a\) и \(b\) не обязательно должны являться началом и концом поездки, кроме того, путь из \(b\) в \(a\) может отличаться. Напротив, если водитель выбрал два разных маршрута из какого-то \(a\) в какое-то \(b\), то он однозначно человек.

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

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

Каждый тест состоит из нескольких тестовых случаев. Первая строка содержит одно целое число \(t\) (\(1 \le t \le 3 \cdot 10^5\)) — количество тестовых случаев.

Первая строка каждого тестового случая содержит одно целое число \(n\) (\(1 \le n \le 3 \cdot 10^5\)) — количество перекрёстков в городе.

Вторая строка содержит одно целое число \(q\) (\(1 \le q \le 3 \cdot 10^5\)) — количество поездок, совершённых водителем.

Каждая из следующих \(q\) строк начинается с одного целого числа \(k\) (\(2 \le k \le n\)) — количество перекрёстков, которые проехал водитель в этой поездке. Затем следуют \(k\) целых чисел \(c_1\), \(c_2\), ..., \(c_k\) (\(1 \le c_i \le n\)) — перекрёстки в поездке в том порядке, в котором их проезжал водитель. Гарантируется, что все перекрёстки в одной поездке различны.

Гарантируется, что сумма значений \(k\) по всем поездкам по всем тестовым случаям не превосходит \(3 \cdot 10^5\).

Гарантируется, что сумма значений \(n\), а также сумма всех значений \(q\) по всем тестовым случаям не превосходит \(3 \cdot 10^5\).

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

Для каждого тестового случая выведите «Robot», если водитель может быть роботом и «Human» иначе.

Вы можете выводить каждую букву в любом регистре (строчную или заглавную).

Примечание

В первом примере водитель использовал два разных пути, чтобы добраться из перекрёстка \(1\) в перекрёсток \(3\). Он однозначно человек.

Во втором примере водитель всегда едет по циклу \(1 \to 2 \to 3 \to 4 \to 1\) пока не доезжает до точки назначения.


Примеры
Входные данныеВыходные данные
1 1
5
2
4 1 2 3 5
3 1 4 3
Human
2 1
4
4
3 1 2 3
3 2 3 4
3 3 4 1
3 4 1 2
Robot

time 1000 ms
memory 1024 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя