package D3;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class 코딩토너먼트1 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int t = Integer.parseInt(br.readLine());
for(int tc=1; tc<=t; tc++) {
int k = Integer.parseInt(br.readLine());
int num = (int) Math.pow(2, k); // 거듭제곱
List<Integer> list = new ArrayList<>();
st = new StringTokenizer(br.readLine());
for(int i =0; i<num; i++) {
list.add(Integer.parseInt(st.nextToken())); // 7 1 4 3
}
int ans = 0; // 결과
num /=2 ;
for(int i =0; i<k; i++) { // i=0,1,2
for(int j =0; j<num; j++) { // num 은 토너먼트 시킬 개수
int a = list.get(j);
int b = list.get(j+1);
ans += Math.abs(a-b);
if(a<b) {
list.remove(j);
}else {
list.remove(j+1);
}
}
num /= 2; // 올라갈수록 토너먼트 형식이니까
}
System.out.println("#" + tc + " " + ans);
}
}
}