#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define ld long double #define pb push_back #define ppb pop_back #define pii pair<int, int> #define pll pair<ll, ll> #define vi vector<int> #define vll vector<ll> #define vull vector<ull> #define vpii vector<pii > #define vpll vector<pll > #define mp make_pair #define mt make_tuple #define ff first #define ss second #define uset unordered_set #define umap unordered_map #define all(x) x.begin(), x.end() #define revall(x) x.rbegin(), x.rend() #define rep(i, j, k) for(int i = j; i < k; i++) #define fastio ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define T int tt; cin>>tt; while(tt--) const ll MOD = (ll)(1e9+7); const int inf = (int)INFINITY; const ll INF = (ll)INFINITY; const int MAX = (int)1e5; int main() { fastio; T { int n, m; cin>>n>>m; vector<vector<ll> > a(n+1, vector<ll> (m+1)), dp(n+1, vector<ll> (m+1)); for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin>>a[i][j]; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + a[i][j]; int q; cin>>q; while(q--) { int a, b, x, y; cin>>a>>b>>x>>y; cout<<dp[x][y] - dp[x][b-1] - dp[a-1][y] + dp[a-1][b-1]<<endl; } } return 0; }