Честная игра
В начальной школе дети любят играть в игру.
Игра проводится между двумя игроками. Сначала задаются параметр x и N предметов. i-й предмет имеет значение c_i. Два игрока по очереди берут предметы.
Если игрок берет i-й предмет на t-м ходу, он зарабатывает sin(x+t+c_i) очков, где x, t и c_i интерпретируются в радианах. t равен 1 для первого хода первого игрока, для первого хода второго игрока t равен 2, и так далее. Цель каждого игрока - максимизировать свою общую сумму очков минус общую сумму очков противника.
Хотя дети наслаждались игрой, однажды некоторые родители заявили, что игра несправедлива, потому что один из игроков может определенно проиграть, как бы мудро он ни играл. Родители, такие же яростные, как монстры, потребовали сделать игру справедливой, то есть чтобы оба игрока получали одинаковое количество очков, когда оба играют оптимально.
Чтобы удовлетворить просьбу, учителя начальной школы решили ввести гандикап. Рассмотрим другой параметр w. Для параметров x и w следующее значение добавляется к очкам первого игрока:
Теперь, для заданных w и предметов, существует ли такой x, который делает игру справедливой? Напишите программу, чтобы найти x.
Входные данные
Первая строка входных данных содержит два целых числа N (1 ≤ N ≤ 14) и w (1 ≤ w ≤ 100000). N обозначает количество предметов, а w - параметр, описанный выше.
Следующие N строк описывают значения для каждого предмета. i-я строка обозначает целые числа c_i (1 ≤ c_i ≤ 100000).
Выходные данные
Выведите x, который делает игру справедливой. Если такого x не существует, выведите "impossible" (без кавычек). Если существует такой x, ваш вывод будет принят, если абсолютное значение разницы в очках двух игроков не превышает 10^{-3}, когда они играют оптимально. Если существует несколько ответов, любой из них будет принят.