#include <stdio.h>
#include <stdlib.h>


#define Nd 9	// Number of dominos
#define Cl 9	// Length of cycle

int domino[Nd][2] = {{1,3},{1,4},{1,5},{2,3},{2,4},{2,5},{3,4},{3,5},{4,5}};


#define CycleLoop(n) \
				for (i[n]=i[0]+1; i[n]<Nd; i[n]++)\
				{\
					for (j=0; j<n; j++)\
					{\
						if (i[j] == i[n])\
							break;\
					}\
					if (j < n)\
						continue;\
					if (domino[i[n-1]][0] == domino[i[n]][0] || domino[i[n-1]][1] == domino[i[n]][0])\
						continue;\
					if (domino[i[n-1]][0] == domino[i[n]][1] || domino[i[n-1]][1] == domino[i[n]][1])\
						continue;



void main(void)
{
	int i[Cl], j, k;

	for (i[0]=0; i[0]<Nd-Cl+1; i[0]++)
	{
			CycleLoop(1)
			CycleLoop(2)
			CycleLoop(3)
			CycleLoop(4)
			CycleLoop(5)
			CycleLoop(6)
			CycleLoop(7)
			CycleLoop(8)
					if (domino[i[0]][0] == domino[i[8]][0] || domino[i[0]][1] == domino[i[8]][0])
						continue;
					if (domino[i[0]][0] == domino[i[8]][1] || domino[i[0]][1] == domino[i[8]][1])
						continue;
						// we have a pairwise disjoint 9-cycle, output the domino pairs
						for (j=0; j<Cl; j++)
							printf("(%d,%d) ", domino[i[j]][0],domino[i[j]][1]);
						printf("\n");
						// we have a pairwise disjoint 9-cycle, output the domino numbers
						//for (j=0; j<Cl; j++)
						//	printf("%2d ", i[j]+1);
						//printf("\n");
					}
		}
		}
		}
		}
		}
		}
		}
	}
}


