eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Регулярные выражения Easy

Регулярные выражения Easy

Регулярным выражением называется выражение, описывающее множество строк. В данной задаче регулярные выражения состоят из прописных латинских букв az и специальных символов '?', '*' и '+'. Каждая буква соответствует самой себе в описываемых строках. Специальный символ может стоять только после какой-то буквы, и означает количество повторений этой буквы:

Символ Число повторений ? Ноль или одно * Ноль или более + Одно или более Например, регулярному выражению "ab?c+" соответствуют строки "ac", "abc", "acc", "abcccc", и т. д.

В заданной строке найдите подстроку, удовлетворяющую заданному регулярному выражению. Если таких несколько, то выведите то, которое находится левее в исходной строке. Если и таких несколько, то выведите самую длинную из них.

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

Первая строка содержит T (1 ≤ T ≤ 100) — количество тестов. Затем следует T тестов. Первая строка каждого теста содержит строку S длины L (1 ≤ L ≤ 200). Следующая строка содержит целое число n (1 ≤ n ≤ 10) — количество регулярных выражений. Следующие n строк содержат n регулярных выражений длины R[i] (1 ≤ *R[i]* ≤ 2), по которым надо найти подстроки в S.

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

Для каждого регулярного выражения выведите соответствующую ему подстроку, или -1, если такой не существует.

Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
1
aabbcc
5
ab
c+
ac
b*
a?
Выходные данные #1
ab
cc
-1

a