#include #include int mark[15]; int main() { int T,n,x,y; scanf("%d",&T); while(T--) { memset(mark,0,sizeof(mark)); scanf("%d",&n); scanf("%d",&x); int f=1; if(!(x>=1&&x<=9)) f=0; else mark[x]=1; for(int i=2; i<=n; i++) { scanf("%d",&y); if(!(y>=1&&y<=9)) f=0; if(f==0) continue; if(mark[y]==0) mark[y]=1; else f=0; if(f==0) continue; if(x==1) { if(y==3) { if(mark[2]==0) { f=0; continue; } } else if(y==7) { if(mark[4]==0) { f=0; continue; } } else if(y==9) { if(mark[5]==0) { f=0; continue; } } } else if(x==2) { if(y==8) { if(mark[5]==0) { f=0; continue; } } } else if(x==3) { if(y==9) { if(mark[6]==0) { f=0; continue; } } else if(y==1) { if(mark[2]==0) { f=0; continue; } } else if(y==7) { if(mark[5]==0) { f=0; continue; } } } else if(x==4) { if(y==6) { if(mark[5]==0) { f=0; continue; } } } else if(x==6) { if(y==4) { if(mark[5]==0) { f=0; continue; } } } else if(x==7) { if(y==1) { if(mark[4]==0) { f=0; continue; } } else if(y==3) { if(mark[5]==0) { f=0; continue; } } else if(y==9) { if(mark[8]==0) { f=0; continue; } } } else if(x==8) { if(y==2) { if(mark[5]==0) { f=0; continue; } } } else if(x==9) { if(y==1) { if(mark[5]==0) { f=0; continue; } } else if(y==3) { if(mark[6]==0) { f=0; continue; } } else if(y==7) { if(mark[8]==0) { f=0; continue; } } } x=y; } if(n<4) f=0; if(f==0) printf("invalid\n"); else printf("valid\n"); } return 0; }