#include using ull = unsigned long long; using usize = std::size_t; constexpr usize NMAX = 50000; bool used[NMAX]; int main() { std::cin.tie(nullptr), std::ios::sync_with_stdio(false); usize N; std::cin >> N; std::vector h(N, 0ULL); for (usize i = 0; i < N; i++) { std::cin >> h[i]; } const usize L = 2 * N; std::vector a(N, 0), b(N, 0), c(N, L), d(N, L), e(N, 0); for (usize i = 0; i < N; i++) { std::cin >> a[i] >> b[i] >> c[i] >> d[i] >> e[i], e[i]--; } usize Q; std::cin >> Q; for (usize i = 0; i < Q; i++) { std::fill(used, used + N, false); usize p, q; std::cin >> p >> q; ull ans = 0; for (usize j = 0; j < N; j++) { if (a[j] <= p and p < c[j] and b[j] <= q and q < d[j] and not used[e[j]]) { used[e[j]] = true, ans ^= h[e[j]]; } } std::cout << ans << "\n"; } return 0; }