Блочная игра
Фермер Джон пытается научить своих коров читать, дав им множество из n дощечек, обычно используемых дошкольниками. Каждая дощечка имеет слово и рисунок на каждой стороне. Например, одна сторона может иметь слово 'cat' и картинку кота на одной стороне и слово 'dog' и картинку собаки на другой стороне.
Когда дощечки лежат на земле, видно n слов. Переворачивая таблички можно получать различные множества из n слов. Чтобы помочь коровам запомнить буквы, ФД хочет подготовить некоторое количество деревянных блоков, на каждом из которых выписана одна буква алфавита. Он хочет подготовить достаточное количество блоков с каждой буквой, для того чтобы вне зависимости от того, какое множество из n слов показывается, коровы могли составить все слова используя эти блоки. Например, если n = 3 и на табличках представлены слова 'box', 'cat', 'car', коровам нужно как минимум 1 'b', 1 'o', 1 'x', 2 'c', 2 'a', 1 't', 1 'r'.
Помогите ФД определить минимальное количество блоков для каждой буквы алфавита, которые он должен обеспечить, чтобы вне зависимости от того какой стороной вверх направлены таблички, можно было составить все n видимых слов.
Входные данные
Первая строка содержит целое число n (1 ≤ n ≤ 100).
Каждая из следующих n строк содержит два слова, разделённых одиночным пробелом, задавая два слова на противоположных сторонах дощечки. Каждое слово – строка не более чем из 10 маленьких английских букв.
Выходные данные
Выведите 26 строк. Первая выходная строка должна содержать требуемое количество букв ‘a’. Следующая строка должна содержать требуемое количество букв ‘b’. И так далее.
Пример
В этом примере n = 3, получается 2^3
= 8 способ повернуть вверх слова:
fox dog car fox dog bus fox cat car fox cat bus box dog car box dog bus box cat car box cat bus
У нас есть достаточно блоков для каждой буквы алфавита, так что мы сможем собрать все три слова, вне зависимости от способа поворачивания слов вверх.