import java.util.Scanner; public class Patience { public static void move(int[] table, int x, int y) { for(int i = x; i < y - 1; i++) { table[i] = table[i+1]; } for(int i = y - 1; i < 20; i++) { table[i] = table[i + 2]; } } public static int search(int[] in) { if(in[0] == -1) { return 0; } int[] table = in.clone(); int ans = 100; for(int i = 0; i < 20 && in[i] != -1 ; i++) { table = in.clone(); switch(i % 4) { case 1: case 2: if(table[i] == table[i + 3]) { move(table, i, i+3); ans = Math.min(search(table), ans); } case 0: if(table[i] == table[i+1]) { move(table, i, i+1); ans = Math.min(search(table), ans); } if(table[i] == table[i+5]) { move(table, i, i+5); ans = Math.min(search(table), ans); } case 3: if(table[i] == table[i+4]) { move(table, i, i+4); ans = Math.min(search(table), ans); } } } if(ans == 100) { for(int i = 0; i <= 20; i++) { if(table[i] == -1) { return i; } } } else { return ans; } return -100; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int loop = sc.nextInt(); while(loop-- != 0) { int[] table = new int[24]; for(int i = 0; i < table.length; i++) { if(i < 20) { table[i] = sc.nextInt(); } else { table[i] = -1; } } System.out.println(search(table)); } } }