Серёжа --- обычный мальчик. На этот раз ему подарили сложную головоломку под названием <<Суперподстрока>>. Он, как и все дети, любит решать головоломки, но ему становится очень грустно, когда он не может их решить. Родители Сережи заботятся о нем и не хотят, чтобы он грустил, поэтому они хотят узнать, имеет ли решение новая головоломка.
Строка $s$ называется <<суперподстрокой>> строки $t$, если существует такая последовательность строк $r_1$, $r_2$, $\ldots$ , $r_k$, удовлетворяющая следующим условиям:
В головоломке даны две строки $t$ и $s$, причем головоломка имеет решение только тогда, когда $s$ --- суперподстрока строки $t$. Соответственно, последовательность $r_1$, $r_2$, $\ldots$ , $r_k$ называется <<решением головоломки>>. Решение головоломки называется оптимальным, если среди всех решений количество элементов в решении, то есть число $k$, минимально.
Дано $N$ головоломок, причем во всех головоломках строки $t$ одинаковы. Для каждой головоломки нужно определить, имеет ли она решение. Если головоломка имеет решение, необходимо найти любое оптимальное решение.
В первой строке входного файла задана строка $t$ ($1 \le |t| \le 10^6$).
Во второй строке задано число $N$ ($1 \le N \le 10^6$) --- количество головоломок.
В следующих $N$ строках заданы головоломки в виде строки $s_i$ ($1 \le |s_i| \le 10^6$)
Сумма длин строк во всех головоломках не превышает $2 \cdot 10^6$.
Все строки в головоломках состоят только из первых $10$ строчных букв латинского алфавита.
В выходной файл выведите $N$ строк --- ответ на каждую головоломку в отдельной строке.
Если головоломка не имеет решения, выведите <<NO>>, иначе выведите решение головоломки, разделяя элементы последовательности $r_1$, $r_2$, $\ldots$ , $r_k$ символом <<|>>.