#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int n, m;
int max = 0;
int a[10][10];
int valid(int row1[], int row2[]){
    for(int i = 0; i < m; i++){
        if(row1[i] == 1){
            if(i > 0 && row2[i-1] == 1)
                return 0;
            if(row2[i] == 1)
                return 0;
            if(i < m-1 && row2[i+1] == 1)
                return 0;
        }
    }
    return 1;
}
void dfs(int row, int cur_sum, int pre[]){
    if(row == n){
        if(cur_sum > max)
            max = cur_sum;
        return;
    }
    for(int i = 0; i < (1 << m); i++){
        if(i & (i << 1))
            continue;
        int cur_row[10] = { 0 };
        int row_sum = 0;

        for(int j = 0; j < m; j++){
            if(i & (1 << j)){
                cur_row[j] = 1;
                row_sum += a[row][j];
            }
        }
        if(row > 0 && !valid(cur_row, pre))
            continue;
        dfs(row+1, cur_sum+row_sum, cur_row);
    }
}
int main(void) {
    int t;
    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", &a[i][j]);
        
        max = 0;
        int start[10] = { 0 };
        dfs(0, 0, start);
        
        printf("%d\n", max);
    }
    return 0;
}