#include<iostream>
using namespace std;
long long maps[3005][3005]={0};
long long dp[3005][3005][5]={0};
int main(){
  int h,w;
  int k;
  
  
  cin>>h>>w;
  cin>>k;
  for(int i=0;i<k;i++){
    int r,c,v;
    cin>>r>>c>>v;
    maps[r][c]=v;
  }
  

  dp[1][1][1]=maps[1][1];
  for(int i=1;i<=h;i++){
    for(int j=1;j<=w;j++){
      for(int l=3;l>=0;l--){
	dp[i+1][j][0]=max(dp[i+1][j][0],dp[i][j][l]);
	dp[i+1][j][1]=max(dp[i+1][j][1],dp[i][j][l]+maps[i+1][j]);
	dp[i][j+1][l]=max(dp[i][j+1][l],dp[i][j][l]);
	if(l<3){
	  dp[i][j+1][l+1]=max(dp[i][j+1][l+1],dp[i][j][l]+maps[i][j+1]);
	}
      }
    }
  }
  
  long long maxim=0;
  for(int i=0;i<=3;i++){
    maxim=max(maxim,dp[h][w][i]);
  }
  cout<<maxim<<endl;
  return(0);
}