[[原文:http://acm.pku.edu.cn/JudgeOnline/problem?id=2799]]
----
''時間制限'':1000ミリ秒
''メモリ制限'':65536KB
&br;

IPネットワーク

*問題 [#lc13ffbb]
アレックスはIPネットワークの管理者である。彼のクライアントは個々のIPアドレスの集まりを持っており、彼はそれらのIPアドレスを最小のIPネットワークにまとめつことに決めた。

各IPアドレスは4バイトの数であり、ドットで区切られたバイトごとの十進表記の列 "byte0.byte1.byte2.byte3" である。各バイトは余計なゼロを含まない0以上255以下の十進数として表記される。

IPネットワークは2つの4バイト数、ネットワークアドレスとネットマスクで表現される。ネットワークアドレスとネットマスクはIPアドレスと同じ記法で表現される。

ネットワークアドレスとネットマスクの意味を理解するためには、それらの2進表記を考える必要がある。IPアドレス、ネットワークアドレス、ネットマスクの2進表記は32ビットからなる: 最初の8ビットがbyte0(最上位から最下位)、続いてbyte1、byte2、byte3と8ビットずつになっている。

IPネットワークは2&sup(){n};(0 <= n <= 32)個のIPアドレスを含む。ネットマスクの2進表記は常に最初の32-nビットが1であり、残りのnビットは0である。ネットワークアドレスの2進表記は最初の32-nビットは0か1であり、残りのnビットは0である。IPネットワークは、最初の32-nビットがネットワークアドレスの最初の32-nビットと一致するような全てのIPアドレスを含む。あるIPネットワークAの持つIPアドレスが他のあるIPネットワークBの持つIPアドレスの数より少ないとき、IPネットワークAはIPネットワークBより小さいとする。

例えば、ネットワークアドレス194.85.160.176とネットマスク255.255.255.248からなるIPネットワークは、194.85.160.176以上194.85.160.183以下の8つのIPアドレスを含む。

*入力 [#z8264a8f]

入力の最初の行は1つの整数m(1 <= m <= 1000)を含む。続くm行は1行に1個のIPアドレスを含む。同じIPアドレスが複数回出現することもありうる。

*出力 [#yb710f01]

与えられたIPアドレスを全て含む最小のIPネットワークを記述する2行を出力せよ。1行目にはネットワークアドレスを、2行目にはネットマスクを出力せよ。

*入力例 [#a14fb75f]

 3
 194.85.160.177
 194.85.160.183
 194.85.160.178

*出力例 [#k3213d23]

 194.85.160.176
 255.255.255.248

*出典 [#s91a47ab]

Northeastern Europe 2005