#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define INF 0x3f3f3f3f #define MOD 1000000007 #define eps 1e-6 #define MAXN 10 #define MAXM 100 #define dd {cout<<"debug"<= l; i --) #define doe(i, x) for(i = 1; i <= x; i ++) int k; int f[MAXN]; int grid[MAXN][MAXN]; bool vis[MAXN]; void init() { mes(grid, 0); grid[1][3] = 2; grid[1][7] = 4; grid[1][9] = 5; grid[2][8] = 5; grid[3][1] = 2; grid[3][7] = 5; grid[3][9] = 6; grid[4][6] = 5; grid[6][4] = 5; grid[7][1] = 4; grid[7][3] = 5; grid[7][9] = 8; grid[8][2] = 5; grid[9][1] = 5; grid[9][3] = 6; grid[9][7] = 8; } bool solve() { mes(vis, false); vis[0] = true; if(k < 4) return false; for(int i = 0; i < k - 1; i ++) { if(vis[grid[f[i]][f[i + 1]]]) { vis[grid[f[i]][f[i + 1]]] = true; vis[f[i]] = true; } else return false; } return true; } int main() { int T; init(); scanf("%d", &T); while(T --) { mes(f, 0); mes(vis, false); scanf("%d", &k); bool flag = false; for(int i = 0; i < k; i ++) { scanf("%d", &f[i]); if(vis[f[i]] || (f[i] > 9 || f[i] <= 0)) { flag = true; } else vis[f[i]] = true; } if(flag) printf("%s\n", "invalid"); else printf("%s\n", solve()? "valid" : "invalid"); } return 0; }