#include<iostream>
#include<cstdio>
using namespace std;
int n,m,top;
int a[5050][250],st[5050],l[5050],r[5050];
long long len[5050],sum[5050][5050];
long long ans;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=2;i<=n;i++)
	scanf("%d",&len[i]),len[i]+=len[i-1];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		scanf("%d",&a[i][j]);
		a[i][0]=0x3f3f3f3f;
	}
	
	for(int i=1;i<=m;i++)
	{
		top=0;
		for(int j=1;j<=n;j++)
		{
			while(top&&a[j][i]>a[st[top]][i]) r[st[top]]=j-1,top--;
			l[j]=st[top]+1;
			st[++top]=j;
		}
		while(top) r[st[top]]=n,top--;
		for(int j=1;j<=n;j++)
		{
			int x=l[j],y=r[j],d=a[j][i];
			sum[x][j]+=d;sum[x][y+1]-=d;
			sum[j+1][j]-=d;sum[j+1][y+1]+=d;
		}
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			sum[i][j]+=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
	for(int i=1;i<=n;i++)
	for(int j=i;j<=n;j++)
	ans=max(ans,sum[i][j]-len[j]+len[i]);
	printf("%lld\n",ans);
	return 0;
}