#include <bits/stdc++.h>
using namespace std;
long long A[1 << 20];
long long B[1 << 20];
long long getIP() {
  int a[4];
  scanf("%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]);
  int i;
  long long res = 0;
  for (i = (0); i < (4); ++i) res = (res << 8) | a[i];
  return res;
}
void printIP(long long res) {
  int a[4];
  int i;
  for (i = (0); i < (4); ++i) {
    a[i] = int(res & 255);
    res >>= 8;
  }
  printf("%d.%d.%d.%d\n", a[3], a[2], a[1], a[0]);
}
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  int i, j;
  for (i = (0); i < (n); ++i) A[i] = getIP();
  long long mask = 0;
  for (i = (32) - 1; i >= (1); --i) {
    if (i != 32) mask |= 1LL << i;
    for (j = (0); j < (n); ++j) B[j] = A[j] & mask;
    sort(B, B + n);
    if (k == unique(B, B + n) - B) {
      printIP(mask);
      return 0;
    }
  }
  printf("-1\n");
  return 0;
};
