#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7, M = 1e7, OO = 0x3f3f3f3f;
typedef struct s {
  int a;
  int index;
} sor;
int sorter(sor lhs, sor rhs) {
  if (lhs.a < rhs.a) return 1;
  return 0;
}
string tostring(long long int p) {
  ostringstream oss;
  oss << p;
  return oss.str();
}
long long int toint(string str) {
  long long int num;
  istringstream iss(str);
  iss >> num;
  return num;
}
int main() {
  int n, m;
  long long int mi[109], a;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    mi[i] = 1e9 + 9;
    for (int z = 0; z < m; z++) {
      scanf("%I64d", &a);
      mi[i] = min(mi[i], a);
    }
  }
  sort(mi, mi + n);
  printf("%I64d", mi[n - 1]);
  return 0;
}
