E. Лига Чемпионов
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
input.txt
вывод
output.txt

Осенью этого года две российские команды вышли в групповой этап самого престижного клубного футбольного соревнования в мире — Лиги Чемпионов УЕФА. Сейчас эти команды уже начали играть на групповом этапе и ведут борьбу за выход в плей-офф. В данной задаче нас будет интересовать процесс жеребьевки группового этапа, то есть процедуры разбиения команд на группы.

Процесс жеребьевки выглядит следующим образом (правила, описанные в данной задаче, несколько упрощены по отношению к реальным). Пусть в групповом этапе будут принимать участие n команд (n кратно четырем). Команды должны быть разбиты на группы по четыре команды в каждой. Обозначим количество групп через m (). Каждая команда имеет рейтинг — целое число, характеризующее предыдущие достижения команды. Команды упорядочиваются по убыванию рейтинга (никакие две команды не имеют одинаковый рейтинг).

После этого формируются четыре «корзины», каждая из которых будет содержать m команд: первые m команд с наибольшим рейтингом попадают в первую корзину, следующие m команд — во вторую, и так далее.

Далее m - 1 раз повторяется следующая процедура. Случайным образом выбирается по команде из каждой корзины: сначала из первой, затем из второй, потом из третьей, и в последнюю очередь из четвертой. Выбранные команды образуют очередную группу. После этого они удаляются из своих корзин.

Четыре команды, оставшиеся в корзинах после выполнения (m - 1) описанных процедур, образуют последнюю группу.

В реальной жеребьевке случайный выбор команды из корзины производится людьми — как правило, известными в прошлом футболистами. За неимением таковых среди нас, воспользуемся генератором случайных чисел, который устроен следующим образом. Его параметрами являются четыре целых положительных числа x, a, b, c. Каждый раз, когда происходит обращение к генератору случайных чисел, он производит следующие действия:

  • вычисляет ;
  • заменяет параметр x на величину y (выполняет присваивание );
  • возвращает x в качестве очередного случайного числа.

Операция означает взятие остатка от деления: , .

Генератор случайных чисел будет использован в жеребьевке так: каждый раз, когда будет необходимо случайным образом выбрать команду из корзины, с его помощью будет генерироваться случайное число k. Команды, которые еще остаются в корзине, считаются пронумерованными последовательными целыми числами от 0 до s - 1 в порядке убывания рейтинга, где s — текущий размер корзины. Тогда из корзины выбирается команда с номером .

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

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

В первой строке входного файла записано целое число n (4 ≤ n ≤ 64, n кратно четырем) — количество команд, принимающих участие в жеребьевке. Во второй строке записаны четыре целых числа x, a, b, c, разделенные пробелами (1 ≤ x, a, b, c ≤ 1000) — параметры генератора случайных чисел. Каждая из следующих n строк описывает по одной команде. Описание состоит из названия команды и ее рейтинга, разделенных одиночным пробелом. Название команды состоит из строчных и прописных букв латинского алфавита и имеет длину от 1 до 20 символов. Рейтинг команды это целое число от 0 до 1000. Названия всех команд различны. Рейтинги всех команд также различны.

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

Выведите распределение команд на группы. Группы выводите в порядке их составления в процессе жеребьевки. Группы нумеруйте последовательными заглавными буквами латинского алфавита, начиная с буквы 'A'. Внутри каждой группы выводите названия команд по одной в строке, в порядке убывания рейтинга команды. Смотрите примеры к условию для уточнения формата выходных данных.

Примеры
Входные данные
8
1 3 1 7
Barcelona 158
Milan 90
Spartak 46
Anderlecht 48
Celtic 32
Benfica 87
Zenit 79
Malaga 16
Выходные данные
Group A:
Barcelona
Benfica
Spartak
Celtic
Group B:
Milan
Zenit
Anderlecht
Malaga
Примечание

В данном примере генератор случайных чисел будет вызван четыре раза:

  • ,
  • ,
  • ,
  • .