#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define MAX 500050
#define ll long long
#define ld long double
#define lli long long int
#define pb push_back
#define INF 100000000000000
#define mod 1000000007
// trignometric function always give value in Radians only
#define PI acos(-1) //3.1415926535897932384626433832795028
#define dsin(degree) sin(degree*(PI/180.0))
#define dcos(degree) cos(degree*(PI/180.0))
#define dtan(degree) tan(degree*(PI/180.0))
#define rsin(radian) sin(radian)
#define rcos(radian) cos(radian)
#define rtan(radian) tan(radian)
#define counttrailingzeroes(n) __builtin_ctzll(n)
#define countsetbits(n) __builtin_popcountll(n)
#define mem0(a) memset(a,0,sizeof(a))
#define mem1(a) memset(a,-1,sizeof(a))
#define memf(a) memset(a,false,sizeof(a))
#define loop(i,n) for (lli i = 0; i < n; i++)
#define FOR(i,a,b) for (lli i = a; i < b; i++)
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define makeuniq(v) v.resize(unique(all(v)) - v.begin()); //only uniq element in vector after this
#define sz(x) int(x.size())
#define F first
#define S second
#define mii map<lli,lli>
#define pii pair<lli,lli>
#define vi vector<lli>
#define vvi vector<vi>
#define vpi vector<pii>
#define vbool vector<bool>
#define seti set<lli>
#define gcd(a,b) __gcd((a),(b))
#define lcm(a,b) (a/gcd(a,b))*b
#define abs(x) ((x < 0)?-(x):x)
#define isvowel(v) (0x208222>>(v&0x1f))&1
#define endl '\n'
template <typename Head>
void print(Head&& head)
{
cout<<head<<endl;
}
template <typename Head, typename... Tail>
void print(Head&& head, Tail... tail)
{
cout<<head<<" ";
print(tail...);
}
#define scanarr(a,n) for(lli i=0;i<n;i++) cin>>a[i];
#define scanvec(a,n) for(lli i=0;i<n;i++){ lli x ; cin>>x; a.pb(x);}
#define printarr(a,n) for(lli i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl;
#define printvec(vec) for(auto xt : vec) cout<<xt<<" "; cout<<"\n";
#define FD(N) fixed<<setprecision(N)
#define deb(x) cout<<#x<<" "<<x<<endl;
/*
1D vector - vi dp(n,value);
*/
lli mceil(lli a,lli b){ return(a/b + (a%b != 0)); }
lli mfloor(lli a,lli b){ return(a/b); }
ll modmul(ll a, ll b,ll MOD = mod) {
return ((a%MOD) * (b%MOD)) % MOD;
}
ll modadd(ll a, ll b,ll MOD = mod){
return((a%MOD)+(b%MOD)+MOD)%MOD;
}
ll modsub(ll a, ll b,ll MOD = mod){
return((a%MOD) - (b%MOD) + MOD)%MOD;
}
lli fastexpo(lli a,lli b ,lli MOD = mod){
a = a%MOD;
lli ans=1;
while(b){
if(b&1)
ans=(ans*1ll*a)%MOD;
a=(a*1ll*a)%MOD;
b=b/2;
}
return ans;
}
vector<int>all_div[200001];
void alldivisors(){
for(int i=1;i<=200000;++i){
for(int j=i;j<=200000;j+=i)
all_div[j].pb(i);
}
}
bool ispower2(lli n){
return(n and (n&(n-1))==0 );
}
//------------------------------------------------------------------------
// lli BIT[MAX], a[MAX], n;
// void update(lli x , lli val)
// {
// while(x<=n)
// {
// BIT[x] += val;
// x += (x&-x);
// }
// }
lli BIT1[MAX], BIT2[MAX],BIT3[MAX], BIT4[MAX];
lli a[MAX], n , b[MAX];
void update(lli *BIT , lli x , lli val)
{
while(x<=n)
{
BIT[x] += val;
x += (x&-x);
}
}
void clear(lli n)
{
loop(i,n)
{
BIT1[i] =BIT2[i] = BIT3[i] = BIT4[i]=0;
}
}
lli query(lli *BIT , lli x)
{
lli sum = 0;
while(x>0)
{
sum += BIT[x];
x -= (x&-x);
}
return sum;
}
bool isap(lli a , lli b, lli c)
{
return((b-a)==(c-b));
}
int main(){
fastio
lli tt =10000;
cin>>tt;
loop(ii,tt)
{
cout<<"Case #"<<ii+1<<": ";
lli a[3][3];
loop(i,3)
{
loop(j,3)
{
if(i==1 and j==1)
{
continue;
}
cin>>a[i][j];
}
}
lli maxi = 0;
vi pos;
pos.pb((a[0][0]+a[2][2])/2);
pos.pb((a[0][1]+a[2][1])/2);
pos.pb((a[1][0]+a[1][2])/2);
pos.pb((a[0][2]+a[2][0])/2);
for(auto xt : pos)
{
a[1][1] = xt;
lli cnt = 0;
loop(i,3){
cnt += isap(a[i][0],a[i][1],a[i][2]);
cnt += isap(a[0][i],a[1][i],a[2][i]);
}
cnt += isap(a[0][0],a[1][1],a[2][2]);
cnt += isap(a[0][2],a[1][1],a[2][0]);
maxi = max(maxi , cnt);
}
print(maxi);
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGU8c3RkaW8uaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZmFzdGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgTUFYIDUwMDA1MAoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGxsaSBsb25nIGxvbmcgaW50CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIElORiAxMDAwMDAwMDAwMDAwMDAKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwoKLy8gdHJpZ25vbWV0cmljIGZ1bmN0aW9uIGFsd2F5cyBnaXZlIHZhbHVlIGluIFJhZGlhbnMgb25seQojZGVmaW5lIFBJIGFjb3MoLTEpIC8vMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1MDI4CiNkZWZpbmUgZHNpbihkZWdyZWUpIHNpbihkZWdyZWUqKFBJLzE4MC4wKSkKI2RlZmluZSBkY29zKGRlZ3JlZSkgY29zKGRlZ3JlZSooUEkvMTgwLjApKQojZGVmaW5lIGR0YW4oZGVncmVlKSB0YW4oZGVncmVlKihQSS8xODAuMCkpCgojZGVmaW5lIHJzaW4ocmFkaWFuKSBzaW4ocmFkaWFuKQojZGVmaW5lIHJjb3MocmFkaWFuKSBjb3MocmFkaWFuKQojZGVmaW5lIHJ0YW4ocmFkaWFuKSB0YW4ocmFkaWFuKQoKI2RlZmluZSBjb3VudHRyYWlsaW5nemVyb2VzKG4pIF9fYnVpbHRpbl9jdHpsbChuKQojZGVmaW5lIGNvdW50c2V0Yml0cyhuKSBfX2J1aWx0aW5fcG9wY291bnRsbChuKSAKCiNkZWZpbmUgbWVtMChhKSBtZW1zZXQoYSwwLHNpemVvZihhKSkKI2RlZmluZSBtZW0xKGEpIG1lbXNldChhLC0xLHNpemVvZihhKSkKI2RlZmluZSBtZW1mKGEpIG1lbXNldChhLGZhbHNlLHNpemVvZihhKSkKCiNkZWZpbmUgbG9vcChpLG4pICBmb3IgKGxsaSBpID0gMDsgaSA8IG47IGkrKykKI2RlZmluZSBGT1IoaSxhLGIpIGZvciAobGxpIGkgPSBhOyBpIDwgYjsgaSsrKQoKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSByYWxsKHYpIHYucmJlZ2luKCksdi5yZW5kKCkKI2RlZmluZSBtYWtldW5pcSh2KSB2LnJlc2l6ZSh1bmlxdWUoYWxsKHYpKSAtIHYuYmVnaW4oKSk7IC8vb25seSB1bmlxIGVsZW1lbnQgaW4gdmVjdG9yIGFmdGVyIHRoaXMKI2RlZmluZSBzeih4KSBpbnQoeC5zaXplKCkpCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCgojZGVmaW5lIG1paSBtYXA8bGxpLGxsaT4KCiNkZWZpbmUgcGlpIHBhaXI8bGxpLGxsaT4KCiNkZWZpbmUgdmkgdmVjdG9yPGxsaT4KI2RlZmluZSB2dmkgdmVjdG9yPHZpPgojZGVmaW5lIHZwaSB2ZWN0b3I8cGlpPgojZGVmaW5lIHZib29sIHZlY3Rvcjxib29sPgoKI2RlZmluZSBzZXRpIHNldDxsbGk+CgojZGVmaW5lIGdjZChhLGIpIF9fZ2NkKChhKSwoYikpCiNkZWZpbmUgbGNtKGEsYikgKGEvZ2NkKGEsYikpKmIKI2RlZmluZSBhYnMoeCkgKCh4IDwgMCk/LSh4KTp4KQojZGVmaW5lIGlzdm93ZWwodikgKDB4MjA4MjIyPj4odiYweDFmKSkmMQoKI2RlZmluZSBlbmRsICdcbicKCnRlbXBsYXRlIDx0eXBlbmFtZSBIZWFkPgp2b2lkIHByaW50KEhlYWQmJiBoZWFkKQp7CiAgICBjb3V0PDxoZWFkPDxlbmRsOwp9CnRlbXBsYXRlIDx0eXBlbmFtZSBIZWFkLCB0eXBlbmFtZS4uLiBUYWlsPgp2b2lkIHByaW50KEhlYWQmJiBoZWFkLCBUYWlsLi4uIHRhaWwpCnsKICAgIGNvdXQ8PGhlYWQ8PCIgIjsKICAgIHByaW50KHRhaWwuLi4pOwp9CgojZGVmaW5lIHNjYW5hcnIoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKSAgICBjaW4+PmFbaV07CiNkZWZpbmUgc2NhbnZlYyhhLG4pIGZvcihsbGkgaT0wO2k8bjtpKyspeyBsbGkgeCA7IGNpbj4+eDsgYS5wYih4KTt9CgojZGVmaW5lIHByaW50YXJyKGEsbikgZm9yKGxsaSBpPTA7aTxuO2krKykgICBjb3V0PDxhW2ldPDwiICI7IGNvdXQ8PGVuZGw7CiNkZWZpbmUgcHJpbnR2ZWModmVjKSBmb3IoYXV0byB4dCA6IHZlYykgY291dDw8eHQ8PCIgIjsgICAgY291dDw8IlxuIjsKCiNkZWZpbmUgRkQoTikgZml4ZWQ8PHNldHByZWNpc2lvbihOKQoKI2RlZmluZSBkZWIoeCkgY291dDw8I3g8PCIgIjw8eDw8ZW5kbDsKCi8qCjFEIHZlY3RvciAtICB2aSBkcChuLHZhbHVlKTsKKi8KCmxsaSBtY2VpbChsbGkgYSxsbGkgYil7IHJldHVybihhL2IgKyAoYSViICE9IDApKTsgfQoKbGxpIG1mbG9vcihsbGkgYSxsbGkgYil7IHJldHVybihhL2IpOyB9CgpsbCBtb2RtdWwobGwgYSwgbGwgYixsbCBNT0QgPSBtb2QpIHsKICAgIHJldHVybiAoKGElTU9EKSAqIChiJU1PRCkpICUgTU9EOwp9CgpsbCBtb2RhZGQobGwgYSwgbGwgYixsbCBNT0QgPSBtb2QpewogICAgcmV0dXJuKChhJU1PRCkrKGIlTU9EKStNT0QpJU1PRDsKfQoKbGwgbW9kc3ViKGxsIGEsIGxsIGIsbGwgTU9EID0gbW9kKXsKICAgIHJldHVybigoYSVNT0QpIC0gKGIlTU9EKSArIE1PRCklTU9EOwp9CgpsbGkgZmFzdGV4cG8obGxpIGEsbGxpIGIgLGxsaSBNT0QgPSBtb2QpewogICAgYSA9IGElTU9EOwogICAgbGxpIGFucz0xOwogICAgd2hpbGUoYil7CiAgICAgICAgaWYoYiYxKQogICAgICAgICAgICBhbnM9KGFucyoxbGwqYSklTU9EOwogICAgICAgIGE9KGEqMWxsKmEpJU1PRDsKICAgICAgICBiPWIvMjsKICAgICAgICB9CiAgICByZXR1cm4gYW5zOwogfQoKCnZlY3RvcjxpbnQ+YWxsX2RpdlsyMDAwMDFdOwp2b2lkIGFsbGRpdmlzb3JzKCl7CmZvcihpbnQgaT0xO2k8PTIwMDAwMDsrK2kpewogICAgICAgIGZvcihpbnQgaj1pO2o8PTIwMDAwMDtqKz1pKQogICAgICAgICAgICBhbGxfZGl2W2pdLnBiKGkpOwogICAgfQp9CgoKYm9vbCBpc3Bvd2VyMihsbGkgbil7CiAgICByZXR1cm4obiBhbmQgKG4mKG4tMSkpPT0wICk7Cn0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gbGxpIEJJVFtNQVhdLCBhW01BWF0sIG47Ci8vIHZvaWQgdXBkYXRlKGxsaSB4ICwgbGxpIHZhbCkKLy8gewovLyAgICAgd2hpbGUoeDw9bikKLy8gICAgIHsKLy8gICAgICAgICBCSVRbeF0gKz0gdmFsOwovLyAgICAgICAgIHggKz0gKHgmLXgpOwovLyAgICAgfQovLyB9CiAKbGxpIEJJVDFbTUFYXSwgQklUMltNQVhdLEJJVDNbTUFYXSwgQklUNFtNQVhdOwpsbGkgYVtNQVhdLCBuICwgYltNQVhdOwoKdm9pZCB1cGRhdGUobGxpICpCSVQgLCBsbGkgeCAsIGxsaSB2YWwpCnsKICAgIHdoaWxlKHg8PW4pCiAgICB7CiAgICAgICAgQklUW3hdICs9IHZhbDsKICAgICAgICB4ICs9ICh4Ji14KTsKICAgIH0KfQoKdm9pZCBjbGVhcihsbGkgbikKewogICAgbG9vcChpLG4pCiAgICB7CiAgICAgICAgQklUMVtpXSAgPUJJVDJbaV0gPSBCSVQzW2ldID0gQklUNFtpXT0wOwogICAgfQp9CiAKbGxpIHF1ZXJ5KGxsaSAqQklUICwgbGxpIHgpCnsKICAgICBsbGkgc3VtID0gMDsKICAgICB3aGlsZSh4PjApCiAgICAgewogICAgICAgIHN1bSArPSBCSVRbeF07CiAgICAgICAgeCAtPSAoeCYteCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBzdW07Cn0KCmJvb2wgaXNhcChsbGkgYSAsIGxsaSBiLCBsbGkgYykKewogICAgcmV0dXJuKChiLWEpPT0oYy1iKSk7Cn0KCmludCBtYWluKCl7CmZhc3RpbwpsbGkgdHQgPTEwMDAwOwpjaW4+PnR0Owpsb29wKGlpLHR0KQp7CiAgICBjb3V0PDwiQ2FzZSAjIjw8aWkrMTw8IjogIjsKICAgIGxsaSBhWzNdWzNdOwogICAgbG9vcChpLDMpCiAgICB7CiAgICAgICAgbG9vcChqLDMpCiAgICAgICAgewogICAgICAgICAgICBpZihpPT0xIGFuZCBqPT0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjaW4+PmFbaV1bal07CiAgICAgICAgfQogICAgfQogICAgCiAgICBsbGkgbWF4aSA9IDA7CiAgICAKICAgIHZpIHBvczsKICAgIHBvcy5wYigoYVswXVswXSthWzJdWzJdKS8yKTsKICAgIHBvcy5wYigoYVswXVsxXSthWzJdWzFdKS8yKTsKICAgIHBvcy5wYigoYVsxXVswXSthWzFdWzJdKS8yKTsKICAgIHBvcy5wYigoYVswXVsyXSthWzJdWzBdKS8yKTsKICAgIAogICAgZm9yKGF1dG8geHQgOiBwb3MpCiAgICB7CiAgICAgICAgYVsxXVsxXSA9IHh0OwogICAgICAgIGxsaSBjbnQgPSAwOwogICAgICAgIAogICAgICAgIGxvb3AoaSwzKXsKICAgICAgICAgICAgY250ICs9IGlzYXAoYVtpXVswXSxhW2ldWzFdLGFbaV1bMl0pOwogICAgICAgICAgICBjbnQgKz0gaXNhcChhWzBdW2ldLGFbMV1baV0sYVsyXVtpXSk7CiAgICAgICAgfQogICAgICAgIGNudCArPSBpc2FwKGFbMF1bMF0sYVsxXVsxXSxhWzJdWzJdKTsKICAgICAgICBjbnQgKz0gaXNhcChhWzBdWzJdLGFbMV1bMV0sYVsyXVswXSk7CiAgICAgICAgbWF4aSA9IG1heChtYXhpICwgY250KTsKICAgIH0KICAgIHByaW50KG1heGkpOwogICAgCn0KcmV0dXJuIDA7Cn0KCgo=