#include <bits/stdc++.h>
using namespace std;
const int maxn = 111111;
int tot, n, k;
int p[maxn];
int decode() {
  int a, b, c, d;
  scanf("%d.%d.%d.%d", &a, &b, &c, &d);
  return a << 24 | b << 16 | c << 8 | d;
}
bool go(int m) {
  int i, t;
  set<int> s;
  for (i = 0; i < n; ++i) {
    t = p[i] & m;
    s.insert(t);
  }
  if (s.size() == k) return true;
  return false;
}
void out(int n) {
  int a, b, c, d;
  a = (n >> 24) & 255;
  b = (n >> 16) & 255;
  c = (n >> 8) & 255;
  d = (n)&255;
  printf("%d.%d.%d.%d\n", a, b, c, d);
}
int main() {
  ios::sync_with_stdio(false);
  scanf("%d%d", &n, &k);
  int i;
  bool flag = false;
  int ans = 0;
  for (i = 0; i < n; ++i) {
    p[i] = decode();
  }
  for (i = 31; i >= 0; --i) {
    ans |= (1 << i);
    flag |= go(ans);
    if (flag) break;
  }
  if (flag)
    out(ans);
  else
    puts("-1");
  return 0;
}
