#include<bits/stdc++.h>
using namespace std;
using Int = long long;

template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}

//INSERT ABOVE HERE
signed main(){
  Int n;
  cin>>n;
  using P = pair<Int, Int>;
  vector<P> v;
  for(Int i=0;i<n;i++){
    Int x,y;
    cin>>x>>y;
    v.emplace_back(x+y,x-y);
  }
  Int iu=v[0].first,au=v[0].first;
  Int iv=v[0].second,av=v[0].second;
  for(Int i=0;i<n;i++){
    chmin(iu,v[i].first);
    chmax(au,v[i].first);
    chmin(iv,v[i].second);
    chmax(av,v[i].second);
  }
  //cout<<iu<<" "<<au<<":"<<iv<<" "<<av<<endl;
  auto check1=
    [&](Int d)->Int{
      for(Int i=0;i<n;i++){
	if(v[i].first<=iu+d&&v[i].second<=iv+d) continue;
	if(au-d<=v[i].first&&av-d<=v[i].second) continue;
	return 0;
      }
      return 1;
    };
  auto check2=
    [&](Int d)->Int{
      for(Int i=0;i<n;i++){
	if(v[i].first<=iu+d&&av-d<=v[i].second) continue;
	if(au-d<=v[i].first&&v[i].second<=iv+d) continue;
	return 0;
      }
      return 1;
    };
  
  Int l=-1,r=(au-iu)+(av-iv);
  while(l+1<r){
    Int m=(l+r)>>1;
    if(check1(m)||check2(m)) r=m;
    else l=m;
  }
  cout<<r<<endl;
  return 0;
}

