#include <bits/stdc++.h>
using namespace std;
int main()
{
int t, n, x, y;
pair<int, int> pt[17];
int mask;
int mat[17][17];
int mn[1<<16];
set<int> used;
cin >> t;
for(int k=1; k<=t; k++){
cin >> n;
for(int i=1; i<=n; i++){
cin >> x >> y;
pt[i] = make_pair(x, y);
}
for(int i=1; i<=n; i++){
for(int j=i+1; j<=n; j++){
mask = 0;
for(int m=1; m<=n; m++){
int t1 = (pt[j].first-pt[i].first)*(pt[m].second-pt[i].second);
int t2 = (pt[j].second-pt[i].second)*(pt[m].first-pt[i].first);
if(t1 == t2) mask |= (1<<(m-1));
}
mat[i][j] = mask;
}
}
int target = (1<<n)-1;
mn[0] = 0;
for(int i=1; i<=target; i++)
mn[i] = 16*16+500;
used.clear();
for(int i=1; i<=n; i++){
for(int j=i+1; j<=n; j++){
mask = mat[i][j];
if(used.find(mask) != used.end()) continue;
used.insert(mask);
for(int u=target-1; u>=0; u--){
mn[u|mask] = min(mn[u|mask], mn[u]+1);
}
}
}
if(n == 1) mn[target] = 1;
printf("Case %d: %d\n", k, mn[target]);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKICAgIGludCB0LCBuLCB4LCB5OwogICAgcGFpcjxpbnQsIGludD4gcHRbMTddOwogICAgaW50IG1hc2s7CiAgICBpbnQgbWF0WzE3XVsxN107CiAgICBpbnQgbW5bMTw8MTZdOwogICAgc2V0PGludD4gdXNlZDsKCiAgICBjaW4gPj4gdDsKICAgIGZvcihpbnQgaz0xOyBrPD10OyBrKyspewogICAgICAgIGNpbiA+PiBuOwogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspewogICAgICAgICAgICBjaW4gPj4geCA+PiB5OwogICAgICAgICAgICBwdFtpXSA9IG1ha2VfcGFpcih4LCB5KTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgICAgIGZvcihpbnQgaj1pKzE7IGo8PW47IGorKyl7CiAgICAgICAgICAgICAgICBtYXNrID0gMDsKICAgICAgICAgICAgICAgIGZvcihpbnQgbT0xOyBtPD1uOyBtKyspewogICAgICAgICAgICAgICAgICAgIGludCB0MSA9IChwdFtqXS5maXJzdC1wdFtpXS5maXJzdCkqKHB0W21dLnNlY29uZC1wdFtpXS5zZWNvbmQpOwogICAgICAgICAgICAgICAgICAgIGludCB0MiA9IChwdFtqXS5zZWNvbmQtcHRbaV0uc2Vjb25kKSoocHRbbV0uZmlyc3QtcHRbaV0uZmlyc3QpOwogICAgICAgICAgICAgICAgICAgIGlmKHQxID09IHQyKSBtYXNrIHw9ICgxPDwobS0xKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBtYXRbaV1bal0gPSBtYXNrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGludCB0YXJnZXQgPSAoMTw8biktMTsKICAgICAgICBtblswXSA9IDA7CiAgICAgICAgZm9yKGludCBpPTE7IGk8PXRhcmdldDsgaSsrKQogICAgICAgICAgICBtbltpXSA9IDE2KjE2KzUwMDsKICAgICAgICB1c2VkLmNsZWFyKCk7CiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgICAgIGZvcihpbnQgaj1pKzE7IGo8PW47IGorKyl7CiAgICAgICAgICAgICAgICBtYXNrID0gbWF0W2ldW2pdOwogICAgICAgICAgICAgICAgaWYodXNlZC5maW5kKG1hc2spICE9IHVzZWQuZW5kKCkpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgdXNlZC5pbnNlcnQobWFzayk7CiAgICAgICAgICAgICAgICBmb3IoaW50IHU9dGFyZ2V0LTE7IHU+PTA7IHUtLSl7CiAgICAgICAgICAgICAgICAgICAgbW5bdXxtYXNrXSA9IG1pbihtblt1fG1hc2tdLCBtblt1XSsxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihuID09IDEpIG1uW3RhcmdldF0gPSAxOwogICAgICAgIHByaW50ZigiQ2FzZSAlZDogJWRcbiIsIGssIG1uW3RhcmdldF0pOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==
MgoKMgotMTAgMjAKMjAgMTAKCjE2Ci0xMCAyMAoxMCAxMAoxMTEgMjMyCjQ4IDgzCi0zNCAyMAoxMiAyMgozMyAzMwoxMyAtMTIKMTAwIDEwMAozMiAxMjMKNTQzIDM0NQo5OTkgOTk5Ci05OTkgLTk5OQoxMDAwIDEwMDAKMTAwMCAwCjAgMTAwMA==
2
2
-10 20
20 10
16
-10 20
10 10
111 232
48 83
-34 20
12 22
33 33
13 -12
100 100
32 123
543 345
999 999
-999 -999
1000 1000
1000 0
0 1000