Чудо-дерево
На одной из ветвей чудо-дерева садовник вырастил плоды некоторых фруктов (бананов, апельсинов и т.д.) и теперь хочет собрать урожай. Он может срывать по два растущих рядом друг с другом плода, но как только он срывает эти плоды, на ветке между ними сразу вырастает еще один новый плод. Причем то, каким будет этот плод полностью определяется типом тех двух плодов, которые были сорваны.
Поскольку каждый раз количество фруктов уменьшается на 1, рано или поздно произойдет то, что останется всего один плод, который нельзя будет сорвать. Ваша задача - выяснить каким может оказаться этот последний плод.
Входные данные
В первой строке входного файла задаются два целых числа N и k (1 ≤ N ≤ 500, 1 ≤ k ≤ 10), где N - количество плодов на ветви, а k - количество типов плодов, которые могут расти на чудо-дереве. Во второй строке записаны N целых чисел, определяющих типы плодов, растущих последовательно друг за другом на ветви, эти числа находятся в пределах от 1 до k. В каждой из последних k строк задаются по k чисел, правила вырастания новых плодов: j-ое число в i-ой строке определяет тип плода, который вырастет, если сорвать два последовательных плода, первый из которых будет i-го типа, а второй - j-го.
Выходные данные
В единственной строке выходного файла выведите в порядке возрастания типы плодов, которыми могут оказаться в качестве последнего на ветви чудо-дерева.