#include<bits/stdc++.h>
using namespace std;
const int maxn=3009;

int n,m,K;

int a[maxn][maxn];

long long f[maxn][maxn][4];

int main(){
	cin>>n>>m>>K;
	while(K--){
		int x,y,z;scanf("%d%d%d",&x,&y,&z);
		a[x][y]=z;
	}
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			for(int k=0;k<=3;++k){
				long long t=max(max(f[i-1][j][0],f[i-1][j][1]),max(f[i-1][j][2],f[i-1][j][3]));
				f[i][j][k]=max(f[i][j-1][k],t);
				if(k)f[i][j][k]=max(f[i][j-1][k-1]+a[i][j],f[i][j][k]);
				if(k)f[i][j][k]=max(f[i][j][k],t+a[i][j]);
			}
		}
	}
	printf("%lld\n",max(max(f[n][m][0],f[n][m][1]),max(f[n][m][2],f[n][m][3])));
	return 0;
}