#include int get_piece(int n) { int v = 0; int p, x, y, z; int i; for (i = 0; i < n; i++) { if (scanf(" (%d %d %d %d)", &p, &x, &y, &z) != 4) return 0; v |= 1 << (x * 9 + y * 3 + z); } return v; } int fix_solution(void) { int p1, p2, p3, p4, p5, p6, p7; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; if (getchar() == EOF) return 0; p1 = get_piece(3); p2 = get_piece(4); p3 = get_piece(4); p4 = get_piece(4); p5 = get_piece(4); p6 = get_piece(4); p7 = get_piece(4); if (!p1 || !p2 || !p3 || !p4 || !p5 || !p6 || !p7) return 0; printf("%x %x %x %x %x %x %x\n", p1, p2, p3, p4, p5, p6, p7); if (getchar() == EOF) return 0; return 1; } int main(void) { while (fix_solution()); return 0; }