우주 왕복선에 탄 우주인들이 지구로 귀환할 다음 이탈 시점을 기다리고 있다. 할 일이 없어 지루해진 이들은 한 변의 길이가 1인 정육면체 모양의 음식 큐브로 게임을 하기로 한다. 무중력 환경에서는 놓아 둔 물체가 그 자리에 그대로 떠 있다. 한 우주인이 음식 큐브 여러 개를 공간에 배치하는데, 이때 큐브들 사이에 빈 공간(구멍)이 생길 수 있다. 다른 사람들은 큐브들의 좌표가 주어졌을 때 구멍의 개수를 세어야 한다.
3차원 공간을 한 변의 길이가 1인 단위 칸들로 나눈다고 하자. 각 음식 큐브는 정수 좌표 (x,y,z) 로 지정되는 하나의 단위 칸을 차지한다. 음식 큐브가 없는 단위 칸을 빈 칸이라고 부른다. 두 칸이 한 면을 맞대고 있으면(즉 세 좌표 중 정확히 하나가 1 만큼 차이 나면) 서로 인접한다고 한다.
구멍이란, 면으로 서로 이어진 빈 칸들의 극대 연결 덩어리 중에서 여섯 방향 모두가 음식 큐브로 완전히 둘러싸여 바깥의 무한한 공간과 이어지지 않는 것을 말한다. 각 음식 큐브의 좌표를 입력받아 구멍의 개수를 구하는 프로그램을 작성하라.
입력의 첫 줄에는 테스트 케이스의 개수를 나타내는 정수 t (1≤t≤20) 가 주어진다. 각 테스트 케이스의 첫 줄에는 음식 큐브의 개수 M 이 주어진다. 이어지는 M 개의 줄 중 i 번째 줄에는 한 음식 큐브의 세 좌표 xi, yi, zi 가 주어지며, 모두 1 이상 100 이하의 정수이다.
각 테스트 케이스마다 구멍의 개수를 한 줄에 하나씩 출력한다.