#include <bits/stdc++.h>
using namespace std;
struct dot {
  int value, i, j;
};
bool operator<(dot a, dot b) { return a.value < b.value; }
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n, m;
    scanf("%d %d", &n, &m);
    int num[n][m];
    priority_queue<dot> pq;
    for (int i = 0; i < n; ++i) {
      for (int j = 0; j < m; ++j) {
        scanf("%d", &num[i][j]);
        pq.push({num[i][j], i, j});
      }
    }
    dot d[n];
    for (int i = 0; i < n; ++i) {
      d[i] = pq.top();
      pq.pop();
    }
    if (n == 4) {
      bool did = false;
      dot dsave;
      if (d[0].j == d[1].j && d[2].j == d[3].j && d[0].j != d[2].j) {
        bool b1 = abs(d[0].i - d[1].i) == 2;
        bool b2 = abs(d[2].i - d[3].i) == 2;
        if (b1 ^ b2) {
          dsave = d[3];
          d[3] = pq.top();
          did = true;
        }
      } else if (d[0].j == d[2].j && d[1].j == d[3].j && d[0].j != d[1].j) {
        bool b1 = abs(d[0].i - d[2].i) == 2;
        bool b2 = abs(d[1].i - d[3].i) == 2;
        if (b1 ^ b2) {
          dsave = d[3];
          d[3] = pq.top();
          did = true;
        }
      } else if (d[0].j == d[3].j && d[1].j == d[2].j && d[0].j != d[1].j) {
        bool b1 = abs(d[0].i - d[3].i) == 2;
        bool b2 = abs(d[1].i - d[2].i) == 2;
        if (b1 ^ b2) {
          dsave = d[3];
          d[3] = pq.top();
          did = true;
        }
      }
      if (did) {
        bool done = true;
        if (d[0].j == d[1].j && d[2].j == d[3].j && d[0].j != d[2].j) {
          bool b1 = abs(d[0].i - d[1].i) == 2;
          bool b2 = abs(d[2].i - d[3].i) == 2;
          if (b1 ^ b2) done = false;
        } else if (d[0].j == d[2].j && d[1].j == d[3].j && d[0].j != d[1].j) {
          bool b1 = abs(d[0].i - d[2].i) == 2;
          bool b2 = abs(d[1].i - d[3].i) == 2;
          if (b1 ^ b2) done = false;
        } else if (d[0].j == d[3].j && d[1].j == d[2].j && d[0].j != d[1].j) {
          bool b1 = abs(d[0].i - d[3].i) == 2;
          bool b2 = abs(d[1].i - d[2].i) == 2;
          if (b1 ^ b2) done = false;
        }
        if (done) {
        } else {
          d[2] = dsave;
        }
      }
    }
    int ret = 0;
    for (int i = 0; i < n; ++i) {
      ret += d[i].value;
    }
    printf("%d\n", ret);
  }
}
