#include<stdio.h> #include<string.h> int dp[25][1010],a[25][1010]; int max(int x,int y) { return x>y?x:y; } int main() { int i,j,C,n,m,k,temp; scanf("%d",&C); while(C--) { memset(dp,0,sizeof(dp)); scanf("%d%d",&n,&m); for(i = 1;i <= n;i ++) { for(j = 1;j <= m;j ++) scanf("%d",&a[i][j]); } for(i = 0;i <= n;i ++) dp[i][0] = -100000000; for(i = 0;i <= m;i ++) dp[0][i] = -100000000; dp[0][1] = dp[1][0] = 0; for(i = 1;i <= n;i ++) { for(j = 1;j <= m;j ++) { temp = -1000000000; temp = max(temp,dp[i-1][j]); temp = max(temp,dp[i][j-1]); for(k = 1;k <= j;k ++) { if(j%k==0&&(j/k>1)) temp = max(temp,dp[i][k]); else continue ; } dp[i][j] = temp+a[i][j]; } } printf("%d\n",dp[n][m]); } return 0; }