MaxSum (Счастливая сумма - 2)
Есть прямоугольная таблица размером N строк на M столбиков. В каждой клетке записано целое число. По ней можно пройти сверху вниз, начиная из любой клетки верхней строки, дальше каждый раз переходя в одну из "нижних соседних" клеток (иными словами, из клетки с номером (i, j) можно перейти или на (i+1, j-1), или на (i+1, j), или на (i+1, j+1); в случае j=M последний из трёх описанных вариантов становится невозможным, а в случае j=1 - первый) и закончить маршрут в какой-нибудь клетке нижней строки.
Напишите программу, которая будет находить максимально возможную счастливую сумму значений пройденных клеток среди всех допустимых путей. Всем известно, что счастливыми являются натуральные числа, в десятичной записи которых содержатся только счастливые цифры 4 и 7. Например, числа 47, 744, 4 являются счастливыми, а 0, 5, 17, 467 - не являются. Обратите внимание, что счастливой должна быть именно сумма, а не отдельные слагаемые.
Входные данные
В первой строке записаны N и M - количество строчек и количество столбиков (1 ≤ N, M ≤ 12), дальше в каждой из следующих N строк записано ровно M разделённых пробелами целых неотрицательных чисел (каждое из которых в десятичной записи не более 12 цифр) - значения клеток таблицы.
Выходные данные
Вывести либо единственное целое число (найденную максимальную среди сумм по маршрутам указанного вида), либо строку "impossible" (без кавычек, маленькими латинскими буквами). Строка "impossible" должна выводиться только в том случае, когда среди маршрутов указанного вида нет ни одного со счастливой суммой.