#include #define ll long long #define ull unsigned ll #define uint unsigned #define pii pair #define pll pair #define IT iterator #define PB push_back #define fi first #define se second #define For(i,j,k) for (int i=(int)(j);i<=(int)(k);i++) #define Rep(i,j,k) for (int i=(int)(j);i>=(int)(k);i--) #define CLR(a,v) memset(a,v,sizeof(a)); #define CPY(a,b) memcpy(a,b,sizeof(a)); #define debug puts("wzpakking") #define y1 ysghysgsygsh using namespace std; int n,m,k,x[10],y[10],z[10]; int s[65]; bool check(int d){ memset(s,0,sizeof(s)); For(i,1,n) For(j,1,m){ int flg=0; For(p,1,k) if (abs(x[p]-i)+abs(y[p]-j)<=d) flg|=1<<(p-1); ++s[flg]; } //cout<s2) return 0; } return 1; } void solve(){ scanf("%d%d%d",&n,&m,&k); For(i,1,k) scanf("%d%d%d",&x[i],&y[i],&z[i]); int l=0,r=1e9,ans=-1; while (l<=r){ int mid=(l+r)/2; if (check(mid)) ans=mid,r=mid-1; else l=mid+1; } cout<