import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sa = br.readLine().split(" "); int h = Integer.parseInt(sa[0]); int w = Integer.parseInt(sa[1]); int sx = Integer.parseInt(sa[2]) - 1; int sy = Integer.parseInt(sa[3]) - 1; int n = Integer.parseInt(sa[4]); int[] x = new int[n]; int[] y = new int[n]; int[] c = new int[n]; for (int i = 0; i < n; i++) { sa = br.readLine().split(" "); x[i] = Integer.parseInt(sa[0]) - 1; y[i] = Integer.parseInt(sa[1]) - 1; c[i] = Integer.parseInt(sa[2]); } br.close(); long[] dpx = new long[h]; long[] dpy = new long[w]; long[] dpz = new long[h + w]; long[] dpn = new long[h + w]; long[] ans = new long[n]; { int xi = x[0]; int yi = y[0]; int zi = xi + yi; int ni = xi - yi + w; long v2 = c[0]; if (xi == sx || yi == sy || zi == sx + sy || ni == sx - sy + w) { dpx[xi] = v2; dpy[yi] = v2; dpz[zi] = v2; dpn[ni] = v2; ans[0] = v2; } } for (int i = 1; i < n; i++) { ans[i] = ans[i - 1]; int xi = x[i]; int yi = y[i]; int zi = xi + yi; int ni = xi - yi + w; long v1 = 0; v1 = Math.max(v1, dpx[xi]); v1 = Math.max(v1, dpy[yi]); v1 = Math.max(v1, dpz[zi]); v1 = Math.max(v1, dpn[ni]); if (i >= 2) { v1 = Math.max(v1, ans[i - 2]); } long v2 = v1 + c[i]; dpx[xi] = Math.max(dpx[xi], v2); dpy[yi] = Math.max(dpy[yi], v2); dpz[zi] = Math.max(dpz[zi], v2); dpn[ni] = Math.max(dpn[ni], v2); ans[i] = Math.max(ans[i], dpx[xi]); ans[i] = Math.max(ans[i], dpy[yi]); ans[i] = Math.max(ans[i], dpz[zi]); ans[i] = Math.max(ans[i], dpn[ni]); } System.out.println(ans[n - 1]); } }