#include int f[52][52][4]; int c[52][2]; long n; int check(char s[52][4],int i,int j,int k){ if(s[i][(k/2)*2]==s[j][(k%2)*2] || (s[i][1-k/2]==s[j][1-k%2] && s[i][2-k/2]==s[j][2-k%2])) return 0; return 1; } int search(int i){ if(i==n) return 1; int j,f0,f1; if(i==0){ memset(c,1,sizeof(c)); } f0=c[i][0]; f1=c[i][1]; if(f0){ c[i][0]=1; c[i][1]=0; for(j=i+1;j52){ printf("Impossible\n"); return 0; }else{ for(i=0;i