#include <iostream> using namespace std; const int MAXP = 100; int dis(int *p1, int *p2) { int d = 0; for(int i = 0; i < 3; ++i) { d += abs(p1[i] - p2[i]); } return d; } int main() { int N; cin>>N; int points[MAXP][3]; for(int no = 0; no < N; ++no) { int P; cin>>P; fscanf(stdin, "%d,%d,%d", &points[0][0], &points[0][1], &points[0][2]); int area = 6; bool iscorrect = true; cout<<no + 1<<" "; for(int i = 1; i < P; ++i) { fscanf(stdin, "%d,%d,%d", &points[i][0], &points[i][1], &points[i][2]); if(!iscorrect) { continue; } area += 6; int j = 0; bool isconnected = false; while(j < i) { int d = dis(points[i], points[j]); if(d == 0) { break; } if(d == 1) { isconnected = true; area -= 2; } j++; } if(j != i || !isconnected) { iscorrect = false; cout<<"NO "<<i + 1<<endl; } } if(iscorrect) { cout<<area<<endl; } } return 0; }