#include <bits/stdc++.h>
using namespace std;
int n, m;
int a[1005][1005];
set<int> stx[1005];
set<int> sty[1005];
vector<int> vtx[1005];
vector<int> vty[1005];
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      scanf("%d", &a[i][j]);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      stx[i].insert(a[i][j]);
    }
    for (auto s : stx[i]) {
      vtx[i].push_back(s);
    }
  }
  for (int j = 0; j < m; j++) {
    for (int i = 0; i < n; i++) {
      sty[j].insert(a[i][j]);
    }
    for (auto s : sty[j]) {
      vty[j].push_back(s);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      int lenx = vtx[i].size();
      int leny = vty[j].size();
      int xx =
          lower_bound(vtx[i].begin(), vtx[i].end(), a[i][j]) - vtx[i].begin();
      int yy =
          lower_bound(vty[j].begin(), vty[j].end(), a[i][j]) - vty[j].begin();
      int ans = max(max(lenx, leny), max(xx + leny - yy, yy + lenx - xx));
      printf("%d ", ans);
    }
    printf("\n");
  }
  return 0;
}
