#include using namespace std; int main(){ int N; cin >> N; vector L(5), R(5); vector> A(5, vector(N - 1, 0)); for (int i = 0; i < 5; i++){ cin >> L[i] >> R[i]; L[i]--; R[i]--; for (int j = L[i]; j < R[i]; j++){ cin >> A[i][j]; } } int M; cin >> M; vector> s(5); for (int i = 0; i < M; i++){ int B, S; cin >> B >> S; B--; s[B].push_back(S); } for (int i = 0; i < 5; i++){ sort(s[i].begin(), s[i].end()); } vector> T(5, vector(N)); for (int i = 0; i < 5; i++){ T[i][0] = 0; for (int j = 0; j < N - 1; j++){ T[i][j + 1] = T[i][j] + A[i][j]; } } long long ans = 0; for (int i = 0; i < 5; i++){ for (int j = 0; j < i; j++){ int l = max(L[i], L[j]); int r = min(R[i], R[j]); if (l < r){ vector lj, rj; for (int x : s[j]){ lj.push_back(x + T[j][l]); rj.push_back(x + T[j][r]); } for (int x : s[i]){ long long li = x + T[i][l]; long long ri = x + T[i][r]; int a = lower_bound(lj.begin(), lj.end(), li) - lj.begin(); int b = upper_bound(rj.begin(), rj.end(), ri) - rj.begin(); ans += b - a; } } } } cout << ans << endl; }