#include <bits/stdc++.h>
using namespace std;
const int LIM = 1e5 + 5, MOD = 1e9 + 7;
long long int k, n, a[1005][1005], d[1005], r[1005];
char s[10005];
vector<long long int> v[1005], b[1005], v1[1005], v2[1005];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long int n, m, i, j;
  cin >> n >> m;
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      cin >> a[i][j];
    }
  }
  for (j = 0; j < m; j++)
    for (i = 0; i < n; i++) {
      v[j].push_back(a[i][j]);
    }
  for (i = 0; i < n; i++)
    for (j = 0; j < m; j++) {
      b[i].push_back(a[i][j]);
    }
  for (j = 0; j < m; j++) {
    sort(v[j].begin(), v[j].end());
  }
  for (i = 0; i < n; i++) {
    sort(b[i].begin(), b[i].end());
  }
  for (j = 0; j < m; j++) {
    v1[j].push_back(v[j][0]);
    for (i = 1; i < n; i++) {
      if (v[j][i] == v[j][i - 1]) {
        continue;
      } else {
        v1[j].push_back(v[j][i]);
      }
    }
    d[j] = v1[j].size();
  }
  for (i = 0; i < n; i++) {
    v2[i].push_back(b[i][0]);
    for (j = 1; j < m; j++) {
      if (b[i][j] == b[i][j - 1]) {
        continue;
      } else {
        v2[i].push_back(b[i][j]);
      }
    }
    r[i] = v2[i].size();
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      long long int m =
          lower_bound(v1[j].begin(), v1[j].end(), a[i][j]) - v1[j].begin();
      long long int k =
          lower_bound(v2[i].begin(), v2[i].end(), a[i][j]) - v2[i].begin();
      long long int m1 = m;
      long long int m2 = d[j] - m - 1;
      long long int c1 = k;
      long long int c2 = r[i] - k - 1;
      cout << max(m1, c1) + max(m2, c2) + 1;
      cout << " ";
    }
    cout << "\n";
  }
}
