int main() {
  long long int N, M, sum = 0, i, j, k, a[200010], true = 0, true2 = 0;
  double ave = 0;
  scanf("%lld", &M);
  while (M > 0) {
    scanf("%lld", &N);
    for (i = 0; i < N; i++) {
      scanf("%lld", &a[i]);
      sum += a[i];
    }
    ave = (double)sum / N;
    for (i = 0; i < N; i++) {
      if (a[i] == ave)
        true ++;
    }
    if (true != 0)
      printf("%lld\n", true);
    true = 0;
    for (i = 0; i < N; i++) {
      if (a[i] == ave && true2 == 1 && true == 1)
        printf(" %lld", i + 1);
      if (a[i] == ave && true == 0) {
        printf("%lld", i + 1);
        true = 1;
        true2 = 1;
      }
    }
    if (true2 == 0)
      printf("0");
    printf("\n");
    M--, sum = 0, ave = 0, true = 0, true2 = 0;
  }
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x186ab0,%rsp
movl   $0x0,-0x4(%rbp)
movq   $0x0,-0x20(%rbp)
movq   $0x0,-0x186a98(%rbp)
movq   $0x0,-0x186aa0(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x186aa8(%rbp)
ff
lea    0xea5(%rip),%rdi
lea    -0x18(%rbp),%rsi
mov    $0x0,%al
call   1040 <scanf@plt>
cmpq   $0x0,-0x18(%rbp)
jle    13cb <main+0x2ab>
lea    0xe88(%rip),%rdi
lea    -0x10(%rbp),%rsi
mov    $0x0,%al
call   1040 <scanf@plt>
movq   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%rax
cmp    -0x10(%rbp),%rax
jge    11e5 <main+0xc5>
mov    -0x28(%rbp),%rax
lea    -0x186a90(%rbp),%rsi
shl    $0x3,%rax
add    %rax,%rsi
lea    0xe4e(%rip),%rdi
mov    $0x0,%al
call   1040 <scanf@plt>
mov    -0x28(%rbp),%rax
mov    -0x186a90(%rbp,%rax,8),%rax
ff
add    -0x20(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x28(%rbp)
jmp    1192 <main+0x72>
cvtsi2sdq -0x20(%rbp),%xmm0
cvtsi2sdq -0x10(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x186aa8(%rbp)
ff
movq   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%rax
cmp    -0x10(%rbp),%rax
jge    125d <main+0x13d>
mov    -0x28(%rbp),%rax
cvtsi2sdq -0x186a90(%rbp,%rax,8),%xmm0
95 e7 ff
ucomisd -0x186aa8(%rbp),%xmm0
ff
jne    1247 <main+0x127>
jp     1247 <main+0x127>
mov    -0x186a98(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x186a98(%rbp)
jmp    124c <main+0x12c>
mov    -0x28(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x28(%rbp)
jmp    1205 <main+0xe5>
cmpq   $0x0,-0x186a98(%rbp)
je     1280 <main+0x160>
mov    -0x186a98(%rbp),%rsi
lea    0xd87(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movq   $0x0,-0x186a98(%rbp)
movq   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%rax
cmp    -0x10(%rbp),%rax
jge    1367 <main+0x247>
mov    -0x28(%rbp),%rax
cvtsi2sdq -0x186a90(%rbp,%rax,8),%xmm0
95 e7 ff
ucomisd -0x186aa8(%rbp),%xmm0
ff
jne    12f5 <main+0x1d5>
jp     12f5 <main+0x1d5>
cmpq   $0x1,-0x186aa0(%rbp)
01
jne    12f5 <main+0x1d5>
cmpq   $0x1,-0x186a98(%rbp)
01
jne    12f5 <main+0x1d5>
mov    -0x28(%rbp),%rsi
add    $0x1,%rsi
lea    0xd18(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x28(%rbp),%rax
cvtsi2sdq -0x186a90(%rbp,%rax,8),%xmm0
ucomisd -0x186aa8(%rbp),%xmm0
ff
jne    1351 <main+0x231>
jp     1351 <main+0x231>
cmpq   $0x0,-0x186a98(%rbp)
jne    1351 <main+0x231>
mov    -0x28(%rbp),%rsi
add    $0x1,%rsi
lea    0xcd3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movq   $0x1,-0x186a98(%rbp)
movq   $0x1,-0x186aa0(%rbp)
jmp    1356 <main+0x236>
mov    -0x28(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x28(%rbp)
jmp    1293 <main+0x173>
cmpq   $0x0,-0x186aa0(%rbp)
jne    1383 <main+0x263>
lea    0xc90(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc7a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0x18(%rbp)
movq   $0x0,-0x20(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x186aa8(%rbp)
ff
movq   $0x0,-0x186a98(%rbp)
movq   $0x0,-0x186aa0(%rbp)
jmp    116d <main+0x4d>
mov    -0x4(%rbp),%eax
add    $0x186ab0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x186a78,%rsp
lea    0xebf(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1050 <scanf@plt>
cmpq   $0x0,0x8(%rsp)
jle    149e <main+0x36e>
lea    0xea0(%rip),%r13
mov    %rsp,%r14
lea    0xe95(%rip),%r15
jmp    11ac <main+0x7c>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    $0x30,%edi
call   1030 <putchar@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    0x8(%rsp),%rax
lea    -0x1(%rax),%rcx
mov    %rcx,0x8(%rsp)
cmp    $0x1,%rax
jle    149e <main+0x36e>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <scanf@plt>
cmpq   $0x0,(%rsp)
jle    1180 <main+0x50>
xor    %ebp,%ebp
xor    %ebx,%ebx
xor    %r12d,%r12d
nopw   0x0(%rax,%rax,1)
lea    (%rsp,%rbp,1),%rsi
add    $0x20,%rsi
mov    %r13,%rdi
xor    %eax,%eax
call   1050 <scanf@plt>
add    0x20(%rsp,%r12,8),%rbx
add    $0x1,%r12
mov    (%rsp),%rax
add    $0x8,%rbp
cmp    %rax,%r12
jl     11d0 <main+0xa0>
test   %rax,%rax
jle    1180 <main+0x50>
xorps  %xmm8,%xmm8
cvtsi2sd %rbx,%xmm8
xorps  %xmm0,%xmm0
cvtsi2sd %rax,%xmm0
divsd  %xmm0,%xmm8
cmp    $0x4,%rax
jae    1222 <main+0xf2>
xor    %esi,%esi
xor    %ecx,%ecx
jmp    13d0 <main+0x2a0>
mov    %rax,%rcx
and    $0xfffffffffffffffc,%rcx
movapd %xmm8,%xmm0
unpcklpd %xmm8,%xmm0
lea    -0x4(%rcx),%rsi
mov    %rsi,%rdx
shr    $0x2,%rdx
add    $0x1,%rdx
test   %rsi,%rsi
je     13b3 <main+0x283>
mov    %rdx,%rdi
and    $0xfffffffffffffffe,%rdi
pxor   %xmm1,%xmm1
xor    %esi,%esi
pxor   %xmm2,%xmm2
nopl   0x0(%rax)
movdqa 0x20(%rsp,%rsi,8),%xmm3
movdqa 0x30(%rsp,%rsi,8),%xmm4
movdqa 0x40(%rsp,%rsi,8),%xmm5
movq   %xmm3,%rbp
xorps  %xmm6,%xmm6
cvtsi2sd %rbp,%xmm6
pshufd $0xee,%xmm3,%xmm3
movq   %xmm3,%rbp
xorps  %xmm3,%xmm3
cvtsi2sd %rbp,%xmm3
unpcklpd %xmm3,%xmm6
movq   %xmm4,%rbp
xorps  %xmm3,%xmm3
cvtsi2sd %rbp,%xmm3
pshufd $0xee,%xmm4,%xmm4
movq   %xmm4,%rbp
xorps  %xmm4,%xmm4
cvtsi2sd %rbp,%xmm4
movdqa 0x50(%rsp,%rsi,8),%xmm7
unpcklpd %xmm4,%xmm3
cmpeqpd %xmm0,%xmm6
psubq  %xmm6,%xmm1
cmpeqpd %xmm0,%xmm3
movq   %xmm5,%rbp
xorps  %xmm4,%xmm4
cvtsi2sd %rbp,%xmm4
pshufd $0xee,%xmm5,%xmm5
movq   %xmm5,%rbp
xorps  %xmm5,%xmm5
cvtsi2sd %rbp,%xmm5
psubq  %xmm3,%xmm2
movq   %xmm7,%rbp
xorps  %xmm3,%xmm3
cvtsi2sd %rbp,%xmm3
pshufd $0xee,%xmm7,%xmm6
movq   %xmm6,%rbp
xorps  %xmm6,%xmm6
cvtsi2sd %rbp,%xmm6
unpcklpd %xmm5,%xmm4
unpcklpd %xmm6,%xmm3
cmpeqpd %xmm0,%xmm4
psubq  %xmm4,%xmm1
cmpeqpd %xmm0,%xmm3
psubq  %xmm3,%xmm2
add    $0x8,%rsi
add    $0xfffffffffffffffe,%rdi
jne    1260 <main+0x130>
test   $0x1,%dl
je     139f <main+0x26f>
movdqa 0x20(%rsp,%rsi,8),%xmm3
movdqa 0x30(%rsp,%rsi,8),%xmm4
movq   %xmm3,%rdx
xorps  %xmm5,%xmm5
cvtsi2sd %rdx,%xmm5
pshufd $0xee,%xmm3,%xmm3
movq   %xmm3,%rdx
xorps  %xmm3,%xmm3
cvtsi2sd %rdx,%xmm3
unpcklpd %xmm3,%xmm5
movq   %xmm4,%rdx
xorps  %xmm3,%xmm3
cvtsi2sd %rdx,%xmm3
pshufd $0xee,%xmm4,%xmm4
movq   %xmm4,%rdx
xorps  %xmm4,%xmm4
cvtsi2sd %rdx,%xmm4
unpcklpd %xmm4,%xmm3
cmpeqpd %xmm0,%xmm5
psubq  %xmm5,%xmm1
cmpeqpd %xmm0,%xmm3
psubq  %xmm3,%xmm2
paddq  %xmm2,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddq  %xmm1,%xmm0
movq   %xmm0,%rsi
jmp    13ef <main+0x2bf>
pxor   %xmm1,%xmm1
xor    %esi,%esi
pxor   %xmm2,%xmm2
test   $0x1,%dl
jne    133b <main+0x20b>
jmp    139f <main+0x26f>
nopl   0x0(%rax,%rax,1)
xorps  %xmm0,%xmm0
cvtsi2sdq 0x20(%rsp,%rcx,8),%xmm0
cmpeqsd %xmm8,%xmm0
movq   %xmm0,%rdx
and    $0x1,%edx
add    %rdx,%rsi
add    $0x1,%rcx
cmp    %rcx,%rax
jne    13d0 <main+0x2a0>
test   %rsi,%rsi
movapd %xmm8,0x10(%rsp)
je     1419 <main+0x2e9>
lea    0xbf9(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
movapd 0x10(%rsp),%xmm8
mov    (%rsp),%rax
test   %rax,%rax
jle    1180 <main+0x50>
xor    %eax,%eax
xor    %ebx,%ebx
jmp    1453 <main+0x323>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rbx
mov    %r15,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
movapd 0x10(%rsp),%xmm8
mov    $0x1,%eax
cmp    (%rsp),%rbx
jge    1490 <main+0x360>
xorps  %xmm0,%xmm0
cvtsi2sdq 0x20(%rsp,%rbx,8),%xmm0
ucomisd %xmm0,%xmm8
jne    1472 <main+0x342>
jp     1472 <main+0x342>
cmp    $0x1,%rax
jne    1472 <main+0x342>
cmp    $0x1,%rax
je     1430 <main+0x300>
add    $0x1,%rbx
ucomisd %xmm0,%xmm8
jne    144d <main+0x31d>
jp     144d <main+0x31d>
test   %rax,%rax
jne    144d <main+0x31d>
mov    %r13,%rdi
jmp    1437 <main+0x307>
nopl   0x0(%rax)
test   %rax,%rax
jne    118a <main+0x5a>
jmp    1180 <main+0x50>
xor    %eax,%eax
add    $0x186a78,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [5 x i8] c"%lld\00"
@.str.1 = [6 x i8] c"%lld\0A\00"
@.str.2 = [6 x i8] c" %lld\00"
@.str.3 = [2 x i8] c"0\00"
@.str.4 = [2 x i8] c"\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i64
%3 = alloca i64
%4 = alloca i64
%5 = alloca i64
%6 = alloca i64
%7 = alloca i64
%8 = alloca [200010 x i64]
%9 = alloca i64
%10 = alloca i64
%11 = alloca double
store i32 0, i32* %1
store i64 0, i64* %4
store i64 0, i64* %9
store i64 0, i64* %10
store double 0.000000e+00, double* %11
%12 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64* %3)
br label %13
13: ; preds = %109, %0
%14 = load i64, i64* %3
%15 = icmp sgt i64 %14, 0
br i1 %15, label %16, label %113
16: ; preds = %13
%17 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64* %2)
store i64 0, i64* %5
br label %18
18: ; preds = %31, %16
%19 = load i64, i64* %5
%20 = load i64, i64* %2
%21 = icmp slt i64 %19, %20
br i1 %21, label %22, label %34
22: ; preds = %18
%23 = load i64, i64* %5
%24 = getelementptr inbounds [200010 x i64], [200010 x i64]* %8, i64 0, i64 %23
%25 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64* %24)
%26 = load i64, i64* %5
%27 = getelementptr inbounds [200010 x i64], [200010 x i64]* %8, i64 0, i64 %26
%28 = load i64, i64* %27
%29 = load i64, i64* %4
%30 = add nsw i64 %29, %28
store i64 %30, i64* %4
br label %31
31: ; preds = %22
%32 = load i64, i64* %5
%33 = add nsw i64 %32, 1
store i64 %33, i64* %5
br label %18
34: ; preds = %18
%35 = load i64, i64* %4
%36 = sitofp i64 %35 to double
%37 = load i64, i64* %2
%38 = sitofp i64 %37 to double
%39 = fdiv double %36, %38
store double %39, double* %11
store i64 0, i64* %5
br label %40
40: ; preds = %55, %34
%41 = load i64, i64* %5
%42 = load i64, i64* %2
%43 = icmp slt i64 %41, %42
br i1 %43, label %44, label %58
44: ; preds = %40
%45 = load i64, i64* %5
%46 = getelementptr inbounds [200010 x i64], [200010 x i64]* %8, i64 0, i64 %45
%47 = load i64, i64* %46
%48 = sitofp i64 %47 to double
%49 = load double, double* %11
%50 = fcmp oeq double %48, %49
br i1 %50, label %51, label %54
51: ; preds = %44
%52 = load i64, i64* %9
%53 = add nsw i64 %52, 1
store i64 %53, i64* %9
br label %54
54: ; preds = %51, %44
br label %55
55: ; preds = %54
%56 = load i64, i64* %5
%57 = add nsw i64 %56, 1
store i64 %57, i64* %5
br label %40
58: ; preds = %40
%59 = load i64, i64* %9
%60 = icmp ne i64 %59, 0
br i1 %60, label %61, label %64
61: ; preds = %58
%62 = load i64, i64* %9
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i64 %62)
br label %64
64: ; preds = %61, %58
store i64 0, i64* %9
store i64 0, i64* %5
br label %65
65: ; preds = %101, %64
%66 = load i64, i64* %5
%67 = load i64, i64* %2
%68 = icmp slt i64 %66, %67
br i1 %68, label %69, label %104
69: ; preds = %65
%70 = load i64, i64* %5
%71 = getelementptr inbounds [200010 x i64], [200010 x i64]* %8, i64 0, i64 %70
%72 = load i64, i64* %71
%73 = sitofp i64 %72 to double
%74 = load double, double* %11
%75 = fcmp oeq double %73, %74
br i1 %75, label %76, label %86
76: ; preds = %69
%77 = load i64, i64* %10
%78 = icmp eq i64 %77, 1
br i1 %78, label %79, label %86
79: ; preds = %76
%80 = load i64, i64* %9
%81 = icmp eq i64 %80, 1
br i1 %81, label %82, label %86
82: ; preds = %79
%83 = load i64, i64* %5
%84 = add nsw i64 %83, 1
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i64 %84)
br label %86
86: ; preds = %82, %79, %76, %69
%87 = load i64, i64* %5
%88 = getelementptr inbounds [200010 x i64], [200010 x i64]* %8, i64 0, i64 %87
%89 = load i64, i64* %88
%90 = sitofp i64 %89 to double
%91 = load double, double* %11
%92 = fcmp oeq double %90, %91
br i1 %92, label %93, label %100
93: ; preds = %86
%94 = load i64, i64* %9
%95 = icmp eq i64 %94, 0
br i1 %95, label %96, label %100
96: ; preds = %93
%97 = load i64, i64* %5
%98 = add nsw i64 %97, 1
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64 %98)
store i64 1, i64* %9
store i64 1, i64* %10
br label %100
100: ; preds = %96, %93, %86
br label %101
101: ; preds = %100
%102 = load i64, i64* %5
%103 = add nsw i64 %102, 1
store i64 %103, i64* %5
br label %65
104: ; preds = %65
%105 = load i64, i64* %10
%106 = icmp eq i64 %105, 0
br i1 %106, label %107, label %109
107: ; preds = %104
%108 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %109
109: ; preds = %107, %104
%110 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%111 = load i64, i64* %3
%112 = add nsw i64 %111, -1
store i64 %112, i64* %3
store i64 0, i64* %4
store double 0.000000e+00, double* %11
store i64 0, i64* %9
store i64 0, i64* %10
br label %13
113: ; preds = %13
%114 = load i32, i32* %1
ret i32 %114
}

LLVM IR (-O2):
@.str = [5 x i8] c"%lld\00"
@.str.1 = [6 x i8] c"%lld\0A\00"
@.str.2 = [6 x i8] c" %lld\00"
define i32 @main() {
%1 = alloca i64
%2 = alloca i64
%3 = alloca [200010 x i64]
%4 = bitcast i64* %1 to i8*
%5 = bitcast i64* %2 to i8*
%6 = bitcast [200010 x i64]* %3 to i8*
%7 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64* %2)
%8 = load i64, i64* %2
%9 = icmp sgt i64 %8, 0
br i1 %9, label %10, label %168
10: ; preds = %0, %163
%11 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64* %1)
%12 = load i64, i64* %1
%13 = icmp sgt i64 %12, 0
br i1 %13, label %14, label %161
14: ; preds = %10, %14
%15 = phi i64 [ %20, %14 ], [ 0, %10 ]
%16 = phi i64 [ %21, %14 ], [ 0, %10 ]
%17 = getelementptr inbounds [200010 x i64], [200010 x i64]* %3, i64 0, i64 %16
%18 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64* %17)
%19 = load i64, i64* %17
%20 = add nsw i64 %19, %15
%21 = add nuw nsw i64 %16, 1
%22 = load i64, i64* %1
%23 = icmp slt i64 %21, %22
br i1 %23, label %14, label %24
24: ; preds = %14
%25 = sitofp i64 %20 to double
%26 = sitofp i64 %22 to double
%27 = fdiv double %25, %26
%28 = icmp sgt i64 %22, 0
br i1 %28, label %29, label %161
29: ; preds = %24
%30 = icmp ult i64 %22, 4
br i1 %30, label %109, label %31
31: ; preds = %29
%32 = and i64 %22, -4
%33 = insertelement <2 x double> poison, double %27, i64 0
%34 = shufflevector <2 x double> %33, <2 x double> poison, <2 x i32> zeroinitializer
%35 = insertelement <2 x double> poison, double %27, i64 0
%36 = shufflevector <2 x double> %35, <2 x double> poison, <2 x i32> zeroinitializer
%37 = add i64 %32, -4
%38 = lshr exact i64 %37, 2
%39 = add nuw nsw i64 %38, 1
%40 = and i64 %39, 1
%41 = icmp eq i64 %37, 0
br i1 %41, label %81, label %42
42: ; preds = %31
%43 = and i64 %39, 9223372036854775806
br label %44
44: ; preds = %44, %42
%45 = phi i64 [ 0, %42 ], [ %78, %44 ]
%46 = phi <2 x i64> [ zeroinitializer, %42 ], [ %76, %44 ]
%47 = phi <2 x i64> [ zeroinitializer, %42 ], [ %77, %44 ]
%48 = phi i64 [ 0, %42 ], [ %79, %44 ]
%49 = getelementptr inbounds [200010 x i64], [200010 x i64]* %3, i64 0, i64 %45
%50 = bitcast i64* %49 to <2 x i64>*
%51 = load <2 x i64>, <2 x i64>* %50
%52 = getelementptr inbounds i64, i64* %49, i64 2
%53 = bitcast i64* %52 to <2 x i64>*
%54 = load <2 x i64>, <2 x i64>* %53
%55 = sitofp <2 x i64> %51 to <2 x double>
%56 = sitofp <2 x i64> %54 to <2 x double>
%57 = fcmp oeq <2 x double> %34, %55
%58 = fcmp oeq <2 x double> %36, %56
%59 = zext <2 x i1> %57 to <2 x i64>
%60 = zext <2 x i1> %58 to <2 x i64>
%61 = add <2 x i64> %46, %59
%62 = add <2 x i64> %47, %60
%63 = or i64 %45, 4
%64 = getelementptr inbounds [200010 x i64], [200010 x i64]* %3, i64 0, i64 %63
%65 = bitcast i64* %64 to <2 x i64>*
%66 = load <2 x i64>, <2 x i64>* %65
%67 = getelementptr inbounds i64, i64* %64, i64 2
%68 = bitcast i64* %67 to <2 x i64>*
%69 = load <2 x i64>, <2 x i64>* %68
%70 = sitofp <2 x i64> %66 to <2 x double>
%71 = sitofp <2 x i64> %69 to <2 x double>
%72 = fcmp oeq <2 x double> %34, %70
%73 = fcmp oeq <2 x double> %36, %71
%74 = zext <2 x i1> %72 to <2 x i64>
%75 = zext <2 x i1> %73 to <2 x i64>
%76 = add <2 x i64> %61, %74
%77 = add <2 x i64> %62, %75
%78 = add nuw i64 %45, 8
%79 = add i64 %48, 2
%80 = icmp eq i64 %79, %43
br i1 %80, label %81, label %44
81: ; preds = %44, %31
%82 = phi <2 x i64> [ undef, %31 ], [ %76, %44 ]
%83 = phi <2 x i64> [ undef, %31 ], [ %77, %44 ]
%84 = phi i64 [ 0, %31 ], [ %78, %44 ]
%85 = phi <2 x i64> [ zeroinitializer, %31 ], [ %76, %44 ]
%86 = phi <2 x i64> [ zeroinitializer, %31 ], [ %77, %44 ]
%87 = icmp eq i64 %40, 0
br i1 %87, label %103, label %88
88: ; preds = %81
%89 = getelementptr inbounds [200010 x i64], [200010 x i64]* %3, i64 0, i64 %84
%90 = bitcast i64* %89 to <2 x i64>*
%91 = load <2 x i64>, <2 x i64>* %90
%92 = getelementptr inbounds i64, i64* %89, i64 2
%93 = bitcast i64* %92 to <2 x i64>*
%94 = load <2 x i64>, <2 x i64>* %93
%95 = sitofp <2 x i64> %91 to <2 x double>
%96 = sitofp <2 x i64> %94 to <2 x double>
%97 = fcmp oeq <2 x double> %34, %95
%98 = fcmp oeq <2 x double> %36, %96
%99 = zext <2 x i1> %97 to <2 x i64>
%100 = zext <2 x i1> %98 to <2 x i64>
%101 = add <2 x i64> %85, %99
%102 = add <2 x i64> %86, %100
br label %103
103: ; preds = %81, %88
%104 = phi <2 x i64> [ %82, %81 ], [ %101, %88 ]
%105 = phi <2 x i64> [ %83, %81 ], [ %102, %88 ]
%106 = add <2 x i64> %105, %104
%107 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %106)
%108 = icmp eq i64 %22, %32
br i1 %108, label %123, label %109
109: ; preds = %29, %103
%110 = phi i64 [ 0, %29 ], [ %107, %103 ]
%111 = phi i64 [ 0, %29 ], [ %32, %103 ]
br label %112
112: ; preds = %109, %112
%113 = phi i64 [ %120, %112 ], [ %110, %109 ]
%114 = phi i64 [ %121, %112 ], [ %111, %109 ]
%115 = getelementptr inbounds [200010 x i64], [200010 x i64]* %3, i64 0, i64 %114
%116 = load i64, i64* %115
%117 = sitofp i64 %116 to double
%118 = fcmp oeq double %27, %117
%119 = zext i1 %118 to i64
%120 = add nuw nsw i64 %113, %119
%121 = add nuw nsw i64 %114, 1
%122 = icmp eq i64 %121, %22
br i1 %122, label %123, label %112
123: ; preds = %112, %103
%124 = phi i64 [ %107, %103 ], [ %120, %112 ]
%125 = icmp eq i64 %124, 0
br i1 %125, label %129, label %126
126: ; preds = %123
%127 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i64 %124)
%128 = load i64, i64* %1
br label %129
129: ; preds = %126, %123
%130 = phi i64 [ %128, %126 ], [ %22, %123 ]
%131 = icmp sgt i64 %130, 0
br i1 %131, label %132, label %161
132: ; preds = %129, %153
%133 = phi i64 [ %156, %153 ], [ 0, %129 ]
%134 = phi i64 [ %155, %153 ], [ 0, %129 ]
%135 = phi i64 [ %154, %153 ], [ 0, %129 ]
%136 = getelementptr inbounds [200010 x i64], [200010 x i64]* %3, i64 0, i64 %135
%137 = load i64, i64* %136
%138 = sitofp i64 %137 to double
%139 = fcmp oeq double %27, %138
%140 = icmp eq i64 %133, 1
%141 = select i1 %139, i1 %140, i1 false
%142 = icmp eq i64 %134, 1
%143 = select i1 %141, i1 %142, i1 false
br i1 %143, label %144, label %147
144: ; preds = %132
%145 = add nuw nsw i64 %135, 1
%146 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i64 %145)
br label %153
147: ; preds = %132
%148 = icmp eq i64 %134, 0
%149 = select i1 %139, i1 %148, i1 false
%150 = add nuw nsw i64 %135, 1
br i1 %149, label %151, label %153
151: ; preds = %147
%152 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64 %150)
br label %153
153: ; preds = %147, %144, %151
%154 = phi i64 [ %145, %144 ], [ %150, %151 ], [ %150, %147 ]
%155 = phi i64 [ 1, %144 ], [ 1, %151 ], [ %134, %147 ]
%156 = phi i64 [ 1, %144 ], [ 1, %151 ], [ %133, %147 ]
%157 = load i64, i64* %1
%158 = icmp slt i64 %154, %157
br i1 %158, label %132, label %159
159: ; preds = %153
%160 = icmp eq i64 %156, 0
br i1 %160, label %161, label %163
161: ; preds = %24, %10, %129, %159
%162 = call i32 @putchar(i32 48)
br label %163
163: ; preds = %161, %159
%164 = call i32 @putchar(i32 10)
%165 = load i64, i64* %2
%166 = add nsw i64 %165, -1
store i64 %166, i64* %2
%167 = icmp sgt i64 %165, 1
br i1 %167, label %10, label %168
168: ; preds = %163, %0
ret i32 0
}