Задача A. Сколько программ?

Автор:Зимние сборы 2005
Входной файл: jaina.in   Ограничение времени:2 сек
Выходной файл: jaina.out   Ограничение памяти:64 Мб

Условие

Женя любит программировать! Она уже выучила N конструкций! Жене интересно, сколько программ заданной длины L она может составить из этих конструкций. Помогите ей сосчитать программы!

Женя игнорирует все пробелы и пустые строки в программе, и обращает внимание только на непробельные символы. Кроме того, Женя считает различными две программы, если они равны как строки, но для их создания были использованы различные последовательности конструкций.

Женя не требует, чтобы полученная программа компилировалась. Про компиляторы она еще не прочитала.

Формат входного файла

В первой строке входного файла содержится количество конструкций N, которые Женя уже выучила. Последующие N строк содержат сами конструкции. Длина никакой из конструкций не превосходит 255 символов. Если одна и та же конструкция встречается несколько раз, то её вхождения считаются различными, таким образом, Женя всегда рассматривает N различных конструкций.

Все строки содержат только символы с ASCII-кодами от 32 до 126. Кроме того, Женя хочет, чтобы пробелы в строках игнорировались (все остальные символы учитываются при подсчете длины).

В последней строке входного файла содержится число L.

Формат выходного файла

Выведите количество различных программ длины L, которые Женя сможет написать.

Ограничения

1 ≤ N ≤ 600, 1 ≤ L ≤ 600.

Примеры тестов

Входной файл (jaina.in) Выходной файл (jaina.out)
1
3
begin
clrscr
end
17
20

Задача C. Небольшая подтасовка

Автор:Зимние сборы 2005
Входной файл: small.in   Ограничение времени:1 сек
Выходной файл: small.out   Ограничение памяти:64 Мб

Условие

В Динарии у власти находится жестокая партия Либеративов. Но оппозиционные настроения усиливаются, поэтому Либеративы решили перераспределить округа для голосования таким образом, чтобы оппозиционно настроенные кварталы присутствовали в как можно меньшем числе округов. Так как честная партия Консервалов не может допустить такого печального конца демократии в Динарии, Вам поручено найти способ нарушить планы Либеративов.

По новому плану столица будет разделена прямоугольной сеткой, в качестве сторон которой будут выбраны главные улицы и авеню. Все улицы и авеню проходят через весь город, имеющий форму прямоугольника, параллельно его сторонам (улицы — вертикально, а авеню — горизонтально). Нумерация начинается с левого нижнего угла. Город ограничивают четыре дороги: 1-я улица (левая граница), 100-я улица (правая граница), 1-я авеню (нижняя граница), 100-я авеню (верхняя граница). Очевидно, что эти дороги должны ограничивать округа, однако, не все дороги по плану будут являться границами округов. Кроме того, для соблюдения видимости честности Либеративы будут определять только вертикальные границы округов, в этом и заключается Ваш шанс, т.к. они вынуждены позволить Консервалам определять горизонтальные.

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

Формат входного файла

Входной файл описывает город, в котором нужно провести операцию. В первой строке задано N, количество кварталов, настроенных лояльно к Консервалам. В последующих N строках заданы номера улицы и авеню нижнего левого угла каждого из этих кварталов. В следующей строке записано S — количество вертикальных границ, которые поставят консервалы, и S номеров улиц в возрастающем порядке, на которых эти границы будут поставлены. В последней строке задано A — количество горизонтальных границ, которые Вам необходимо провести.

Формат выходного файла

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

Ограничения

A ≥ 2,

Примеры тестов

Входной файл (small.in) Выходной файл (small.out)
1
2
49 49 
50 50
2 1 100
3
3 1 50 100

0.022s 0.005s 9