#include <bits/stdc++.h>
using namespace std;
const int maxn = 120;
const int mod = 1000000007;
const long long llinf = 1e18;
long long b[maxn * maxn], a[maxn][maxn], dp[maxn][maxn];
int main() {
  int t, n, m, i, j, k, top;
  scanf("%d", &t);
  while (t--) {
    top = 0;
    scanf("%d %d", &n, &m);
    for (i = 0; i < n; i++)
      for (j = 0; j < m; j++) {
        scanf("%I64d", &a[i][j]);
        b[top++] = a[i][j] - i - j;
      }
    long long ans = llinf;
    for (i = 0; i < top; i++)
      if (a[0][0] >= b[i]) {
        long long ps = b[i];
        dp[0][0] = a[0][0] - ps;
        for (j = 1; j < n; j++)
          if (dp[j - 1][0] == -1 || a[j][0] < ps + j)
            dp[j][0] = llinf;
          else
            dp[j][0] = dp[j - 1][0] + a[j][0] - ps - j;
        for (j = 1; j < m; j++)
          if (dp[0][j - 1] == -1 || a[0][j] < ps + j)
            dp[0][j] = llinf;
          else
            dp[0][j] = dp[0][j - 1] + a[0][j] - ps - j;
        for (j = 1; j < n; j++)
          for (k = 1; k < m; k++) {
            dp[j][k] = llinf;
            if (a[j][k] < ps + j + k) continue;
            dp[j][k] = min(dp[j][k], dp[j - 1][k] + a[j][k] - ps - j - k);
            dp[j][k] = min(dp[j][k], dp[j][k - 1] + a[j][k] - ps - j - k);
          }
        if (dp[n - 1][m - 1] != -1) ans = min(ans, dp[n - 1][m - 1]);
      }
    printf("%I64d\n", ans);
  }
  return 0;
}
