#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
using namespace std;
int n; double X1[100], X2[100], Y1[100], Y2[100];
int x[200][200]; vector<pair<double, int> >X, Y;
pair<int, int>X3[200], Y3[200];
int main() {
	int cnt = 0;
	while (true) {
		cin >> n; cnt++; X.clear(); Y.clear(); if (n == 0)break;
		for (int i = 0; i < 40000; i++) { x[i / 200][i % 200] = 0; X3[i / 200] = make_pair(-1, -1); Y3[i / 200] = make_pair(-1, -1); }
		for (int i = 0; i < n; i++) {
			double L1, L2, L3; cin >> L1 >> L2 >> L3;
			X1[i] = L1 - L3, X2[i] = L1 + L3; Y1[i] = L2 - L3, Y2[i] = L2 + L3;
			X.push_back(make_pair(X1[i], i)); X.push_back(make_pair(X2[i], i));
			Y.push_back(make_pair(Y1[i], i)); Y.push_back(make_pair(Y2[i], i));
		}
		sort(X.begin(), X.end()); sort(Y.begin(), Y.end());
		for (int i = 0; i < 2 * n; i++) {
			int H = X[i].second; if (X3[H].first == -1) { X3[H].first = i; } else { X3[H].second = i; }
			int I = Y[i].second; if (Y3[I].first == -1) { Y3[I].first = i; } else { Y3[I].second = i; }
		}
		for (int i = 0; i < n; i++) {
			for (int j = X3[i].first; j < X3[i].second; j++) {
				for (int k = Y3[i].first; k < Y3[i].second; k++)x[j][k] = 1;
			}
		}
		double cnt2 = 0.0;
		for (int i = 0; i < 2 * n - 1; i++) {
			for (int j = 0; j < 2 * n - 1; j++) {
				if (x[i][j] == 0)continue;
				cnt2 += (X[i + 1].first - X[i].first)*(Y[j + 1].first - Y[j].first);
			}
		}
		cout << cnt << ' ' << fixed << setprecision(2) << cnt2 << endl;
	}
	return 0;
}