#include using namespace std; using ll = long long; [[maybe_unused]] constexpr ll INF = (1LL << 60) - 1; struct Event { ll r; ll query; ll sign; }; void solve() { ll n, q; cin >> n >> q; vector a(n); for (ll i = 0; i < n; ++i) { cin >> a[i]; } vector b(n); for (ll i = 0; i < n; ++i) { cin >> b[i]; } vector> events(n + 1); for (ll i = 0; i < q; ++i) { ll l, d, r, u; cin >> l >> d >> r >> u; --l, --d; events[r].push_back({u, i, 1}); events[r].push_back({d, i, -1}); events[l].push_back({u, i, -1}); events[l].push_back({d, i, 1}); } vector ans(q, 0); vector sum(n + 1, 0); for (ll i = 0; i <= n; ++i) { for (const auto& [r, query, sign] : events[i]) { ans[query] += sign * sum[r]; } if (i == n) break; ll s = 0; for (ll j = 0; j < n; ++j) { s += max(a[i], b[j]); sum[j + 1] += s; } } for (ll i = 0; i < q; ++i) { cout << ans[i] << "\n"; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll t = 1; // cin >> t; while (t--) { solve(); } return 0; }