#include using namespace std; using pii = pair; using ll = long long; const int N = 2000010, MOD = 998244353, INF = 0x3f3f3f3f; int n, m, w[N]; int q, x[N], y[N], c[N], sx, sy; void solve() { scanf("%d%d%d%d%d", &n, &m, &sx, &sy, &q); for (int i = 1; i < q + 1; i++) scanf("%d%d%d", x + i, y + i, c + i); map s[4]; s[0][sx] = s[1][sy] = s[2][sx - sy] = s[3][sx + sy] = 0; ll res = 0, pv = -1e18; for (int i = 1; i < q + 1; i++) { ll v = pv; if (s[0].count(x[i])) v = max(v, s[0][x[i]]); if (s[1].count(y[i])) v = max(v, s[1][y[i]]); if (s[2].count(x[i] - y[i])) v = max(v, s[2][x[i] - y[i]]); if (s[3].count(x[i] + y[i])) v = max(v, s[3][x[i] + y[i]]); pv = res; if (v != -1e18) { v += c[i]; res = max(res, v); s[0][x[i]] = max(s[0][x[i]], v); s[1][y[i]] = max(s[1][y[i]], v); s[2][x[i] - y[i]] = max(s[2][x[i] - y[i]], v); s[3][x[i] + y[i]] = max(s[3][x[i] + y[i]], v); } } printf("%lld\n", res); } int main() { int T = 1; // scanf("%d", &T); while (T--) solve(); return 0; }