#include <bits/stdc++.h>
using namespace std;
int p[13][2001], a[2001], mx[2001], f[1 << 13], x[13][1 << 13];
bool cmp(const int &a, const int &b) { return mx[a] > mx[b]; }
int main() {
  int t, n, m, ans;
  scanf("%d", &t);
  while (t--) {
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
      for (int j = 0; j < m; j++) scanf("%d", &p[i][j]);
    for (int i = 0; i < m; i++) {
      mx[i] = 0;
      for (int j = 0; j < n; j++) mx[i] = max(mx[i], p[j][i]);
      a[i] = i;
    }
    for (int i = 0; i < (1 << n); i++) f[i] = 0;
    sort(a, a + m, cmp);
    m = min(n, m);
    for (int i = 0; i < n && i < m; i++)
      for (int j = (1 << n) - 1; j; j--) {
        x[i][j] = 0;
        for (int s = 0; s < n; s++) {
          ans = 0;
          for (int k = 0; k < n; k++)
            if ((1 << k) & j) ans += p[(s + k) % n][a[i]];
          if (ans > x[i][j]) x[i][j] = ans;
        }
      }
    for (int i = 0; i < n && i < m; i++)
      for (int j = (1 << n) - 1; j; j--)
        for (int l = j; l; l = (l - 1) & j)
          f[j] = max(f[j], f[j ^ l] + x[i][l]);
    printf("%d\n", f[(1 << n) - 1]);
  }
  return 0;
}
