#include<bits/stdc++.h>
using namespace std;
long double dis(long double x, long double y, long double z, long double a, long double b, long double c){
long double res1 = (x - a) * (x - a);
long double res2 = (y - b) * (y - b);
long double res3 = (z - c) * (z - c);
long double res = sqrt(res1 + res2 + res3);
return res;
}
struct st{
long double fi, se, thi;
} f[25];
int sx[25] = {0};
int main() {
long double n, a, b, c, x, y, z,ak,bk,ck,res;
int v = 1,t;
while(cin >> n) {
if(n == 0) return 0;
cin >> a >> b >> c;
for(int i = 0; i < n; ++i) {
cin >> x >> y >> z;
f[i].fi = x;
f[i].se = y;
f[i].thi = z;
}
memset(sx,0,sizeof(sx));
t = 5000000/n;
while(t--){
ak = (long double)rand() / RAND_MAX * a;
bk = (long double)rand() / RAND_MAX * b;
ck = (long double)rand() / RAND_MAX * c;
// cout << ak <<" "<<bk<<" "<<ck<<" ";
long double minn = 1000000;
int j = 0;
for(int i = 0; i < n; ++i) {
// cout << f[i].fi <<" "<<f[i].se<<" "<<f[i].thi <<endl;
res = dis(f[i].fi, f[i].se, f[i].thi, ak, bk, ck);
if(res < minn) {
minn = res;
j = i;
}
}
// cout << j << endl;
sx[j]++;
}
cout <<"Case "<<v<<": ";
++v;
for(int i = 0; i < n; ++i) {
cout<<setprecision(3)<< sx[i] / (5000000/n)<< " ";
}
cout << endl;
}
}
//2 3 3 3
//1 1 1
//2 2 2
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgZG91YmxlIGRpcyhsb25nIGRvdWJsZSB4LCBsb25nIGRvdWJsZSB5LCBsb25nIGRvdWJsZSB6LCBsb25nIGRvdWJsZSBhLCBsb25nIGRvdWJsZSBiLCBsb25nIGRvdWJsZSBjKXsKICAgIGxvbmcgZG91YmxlIHJlczEgPSAoeCAtIGEpICogKHggLSBhKTsKICAgIGxvbmcgZG91YmxlIHJlczIgPSAoeSAtIGIpICogKHkgLSBiKTsKICAgIGxvbmcgZG91YmxlIHJlczMgPSAoeiAtIGMpICogKHogLSBjKTsKICAgIGxvbmcgZG91YmxlIHJlcyA9IHNxcnQocmVzMSArIHJlczIgKyByZXMzKTsgIAogICAgcmV0dXJuIHJlczsgIAp9CnN0cnVjdCBzdHsKICAgIGxvbmcgZG91YmxlIGZpLCBzZSwgdGhpOwp9IGZbMjVdOyAKaW50IHN4WzI1XSA9IHswfTsgIAppbnQgbWFpbigpIHsKICAgIGxvbmcgZG91YmxlIG4sIGEsIGIsIGMsIHgsIHksIHosYWssYmssY2sscmVzOwogICAgaW50IHYgPSAxLHQ7CiAgICB3aGlsZShjaW4gPj4gbikgeyAKICAgICAgICBpZihuID09IDApIHJldHVybiAwOyAgCiAgICAgICAgY2luID4+IGEgPj4gYiA+PiBjOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgY2luID4+IHggPj4geSA+PiB6OwogICAgICAgICAgICBmW2ldLmZpID0geDsKICAgICAgICAgICAgZltpXS5zZSA9IHk7CiAgICAgICAgICAgIGZbaV0udGhpID0gejsKICAgICAgICB9CiAgICAgICAgbWVtc2V0KHN4LDAsc2l6ZW9mKHN4KSk7IAogICAgICAgIHQgPSA1MDAwMDAwL247ICAgICAKICAgICAgICB3aGlsZSh0LS0pewogICAgICAgICAgICAgYWsgPSAobG9uZyBkb3VibGUpcmFuZCgpIC8gUkFORF9NQVggKiBhOwogICAgICAgICAgICAgYmsgPSAobG9uZyBkb3VibGUpcmFuZCgpIC8gUkFORF9NQVggKiBiOwogICAgICAgICAgICAgY2sgPSAobG9uZyBkb3VibGUpcmFuZCgpIC8gUkFORF9NQVggKiBjOwovLyAgICAgICAgICAgIGNvdXQgPDwgYWsgPDwiICI8PGJrPDwiICI8PGNrPDwiICI7IAogICAgICAgICAgICBsb25nIGRvdWJsZSBtaW5uID0gMTAwMDAwMDsKICAgICAgICAgICAgaW50IGogPSAwOwogICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7Ci8vICAgICAgICAgICAgY291dCA8PCBmW2ldLmZpIDw8IiAiPDxmW2ldLnNlPDwiICI8PGZbaV0udGhpIDw8ZW5kbDsgIAogICAgICAgICAgICAgIHJlcyA9IGRpcyhmW2ldLmZpLCBmW2ldLnNlLCBmW2ldLnRoaSwgYWssIGJrLCBjayk7CiAgICAgICAgICAgICAgICBpZihyZXMgPCBtaW5uKSB7CiAgICAgICAgICAgICAgICAgICAgbWlubiA9IHJlczsKICAgICAgICAgICAgICAgICAgICBqID0gaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQovLyAgICAgICAgICAgIGNvdXQgPDwgaiA8PCBlbmRsOyAgCiAgICAgICAgICAgIHN4W2pdKys7ICAKICAgICAgICB9CiAgICAgICAgY291dCA8PCJDYXNlICI8PHY8PCI6ICI7CiAgICAgICAgKyt2OyAKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7ICAKICAgICAgICAgICAgY291dDw8c2V0cHJlY2lzaW9uKDMpPDwgc3hbaV0gLyAoNTAwMDAwMC9uKTw8ICIgIjsgIAogICAgICAgfSAKICAgIAljb3V0IDw8IGVuZGw7CiAgICB9Cn0KLy8yIDMgMyAzCi8vMSAxIDEKLy8yIDIgMgo=