#include <cstring> #include <cstdio>#include <algorithm>using namespace std;const int bin[10] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512};const int dir[5][2] = { {0, 0}, {0, 1}, {1, 0}, {0, -1}, {-1, 0}};int s[8][12][12];int r, c, mp[12][12], mk[12][12];int m, p[8];int v, l, sum, ans;void gao(int i){ if (i == -1) { if(sum > ans && sum <= v) ans = sum; } else { gao(i - 1); sum += p[i]; gao(i - 1); sum -= p[i]; }}void dfs(int x, int y, int t){ int xx, yy; int flag = mk[x][y]; if (!flag) { mk[x][y] = 1; p[m++] = mp[x][y]; } if (t == l) { sum = 0; gao(m - 1); } else { ++t; for (int k = 0; k < 5; k++) { xx = x + dir[k][0]; yy = y + dir[k][1]; if (xx >= 0 && yy >= 0 && xx < r && yy < c && s[t][xx][yy] == 0) dfs(xx, yy, t); } } if(!flag) { mk[x][y] = 0; --m; }}int main(void){ int k, x[50], y[50], t[50]; int x0, y0; while(scanf("%d%d", &r, &c) != EOF) { for (int i = 0; i < r; i++) for (int j = 0; j < c; j++) { scanf("%d", &mp[i][j]); mk[i][j] = 0; } scanf("%d", &k); for (int i = 0; i < k; i++) { scanf("%d%d%d", &x[i], &y[i], &t[i]); --x[i]; --y[i]; } scanf("%d%d%d%d", &x0, &y0, &v, &l); memset(s, 0, sizeof(s)); for (int i = 0; i < k; i++) for (int j = 0; j <= l; j+=t[i]) s[j][x[i]][y[i]] = 1; ans = 0; m = 0; dfs(x0 - 1, y0 - 1, 0); printf("%dn", ans); } return 0; }