#include <iostream>
using namespace std;
int GCD(int x,int y)
{
int gcd=1,max=1;
if(x==1 || y==1) return 1;
for(int i=2;i<x;i++)
{
if(x%i ==0 && y%i==0)
gcd=i;
if(gcd>max) max=gcd;
}
return max;
}
int maxPoints(int *arr,int p,int a,int b)
{
int count=0;
for(int i=0;i<a-1;i++)
{
for(int j=0;j<b;j++)
{
for(int k=0;k<b;k++)
{
int x=*((arr+i*b) + j);
int y=*((arr+(i+1)*b) + k);
if(GCD(x,y)!=1)
count+=*((arr+i*b) + j);
}
}
}
return count;
}
int main() {
int t;
cin>>t;
while(t--)
{
int a,b;
cin>> a >> b;
int **arr = new int*[b];
for(int i = 0; i < b; ++i) {
arr[i] = new int[a];
}
for(int i=0;i<a;i++)
for(int j=0;j<b;j++){
cin>>arr[i][j];
int y =maxPoints((int*)arr,0,a,b);
cout<<y<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgR0NEKGludCB4LGludCB5KQp7CglpbnQgZ2NkPTEsbWF4PTE7CglpZih4PT0xIHx8IHk9PTEpIHJldHVybiAxOwoJZm9yKGludCBpPTI7aTx4O2krKykKCQl7CgkJCWlmKHglaSA9PTAgJiYgeSVpPT0wKQoJCQkJZ2NkPWk7CgkJCWlmKGdjZD5tYXgpIG1heD1nY2Q7CgkJfQoJCXJldHVybiBtYXg7Cn0KaW50IG1heFBvaW50cyhpbnQgKmFycixpbnQgcCxpbnQgYSxpbnQgYikKewoJaW50IGNvdW50PTA7Cglmb3IoaW50IGk9MDtpPGEtMTtpKyspCgl7CgkJZm9yKGludCBqPTA7ajxiO2orKykKCQl7CgkJCWZvcihpbnQgaz0wO2s8YjtrKyspCgkJCXsKCQkJCWludCB4PSooKGFycitpKmIpICsgaik7CgkJCQlpbnQgeT0qKChhcnIrKGkrMSkqYikgKyBrKTsKCQkJCWlmKEdDRCh4LHkpIT0xKQoJCQkJCWNvdW50Kz0qKChhcnIraSpiKSArIGopOwoJCQl9CgkJfQoJfQoJcmV0dXJuIGNvdW50Owp9CmludCBtYWluKCkgewoJaW50IHQ7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pCgl7CgkJaW50IGEsYjsKCQljaW4+PiBhID4+IGI7CgkJaW50ICoqYXJyID0gbmV3IGludCpbYl07CgkJZm9yKGludCBpID0gMDsgaSA8IGI7ICsraSkgewoJICAgICAgIGFycltpXSA9IG5ldyBpbnRbYV07CgkJCX0KCQlmb3IoaW50IGk9MDtpPGE7aSsrKQoJCQlmb3IoaW50IGo9MDtqPGI7aisrKXsKCQkJCWNpbj4+YXJyW2ldW2pdOwoJCWludCB5ID1tYXhQb2ludHMoKGludCopYXJyLDAsYSxiKTsKCQljb3V0PDx5PDxlbmRsOwoJfQoJfQoJcmV0dXJuIDA7Cn0=