C. Маска подсети
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В задаче используется упрощенная модель адресов в TCP/IP, внимательно прочтите условие.

Поликарп устроился на работу системным администратором. Как-то раз к нему в руки попали n IP-адресов. Каждый IP-адрес — это 32-битное число, представленное в виде четверки десятичных 8-битных чисел (без лидирующих нулей), записанных через точку. Например, запись 0.255.1.123 обозначает корректный IP-адрес, а записи 0.256.1.123 и 0.255.1.01 — нет. В данной задаче произвольная четверка 8-битных чисел является корректным IP-адресом.

Поработав администратором, Поликарп узнал, что, зная IP-адрес, можно, используя маску подсети, получить адрес сети, которой принадлежит этот IP-адрес.

Маска подсети — это IP-адрес, обладающий следующим свойством: если записать этот IP-адрес, как 32-битную строку, то он представим в виде «11...11000..000». Другими словами, в маске подсети сначала идет один или более единичный бит, а затем один или более нулевой бит (всего битов 32). Например, IP-адрес 2.0.0.0 не является корректной маской подсети, так как его 32-битная запись имеет вид 00000010000000000000000000000000.

Для получения адреса сети IP-адреса нужно выполнить операцию побитового «и» («and») IP-адреса и маски подсети. Например, если маска подсети 255.192.0.0, а IP-адрес 192.168.1.2, то адрес сети равен 192.128.0.0. При побитовом «и» в записи результата бит равен 1 тогда и только тогда, когда у обоих операндов соответствующие биты единичные.

Теперь Поликарп хочет найти все сети, которым принадлежат его IP-адреса. К сожалению, Поликарп потерял маску подсети. К счастью, Поликарп запомнил, что его IP-адреса принадлежали ровно k различным сетям. Помогите Поликарпу найти маску подсети, такую, что его IP-адреса будут принадлежать ровно k различным сетям. Если таких масок несколько, найдите ту, в битовой записи которой наименьшее количество единиц. Если таких масок не существует, сообщите об этом.

Входные данные

В первой строке записаны два целых числа n и k (1 ≤ k ≤ n ≤ 105) — количество IP-адресов и сетей. В следующих n строках записаны сами IP-адреса. Гарантируется, что все IP-адреса различны.

Выходные данные

В единственной строке выведите IP-адрес маски подсети, в формате описанном в условии, если требуемая маска подсети существует. Иначе выведите -1.

Примеры
Входные данные
5 3
0.0.0.1
0.1.1.2
0.0.2.1
0.1.1.0
0.0.2.3
Выходные данные
255.255.254.0
Входные данные
5 2
0.0.0.1
0.1.1.2
0.0.2.1
0.1.1.0
0.0.2.3
Выходные данные
255.255.0.0
Входные данные
2 1
255.0.0.1
0.0.0.2
Выходные данные
-1