#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, unsigned long long);
int main() {
  char array[1000] = {
      7, 3, 1, 6, 7, 1, 7, 6, 5, 3, 1, 3, 3, 0, 6, 2, 4, 9, 1, 9, 2, 2, 5, 1,
      1, 9, 6, 7, 4, 4, 2, 6, 5, 7, 4, 7, 4, 2, 3, 5, 5, 3, 4, 9, 1, 9, 4, 9,
      3, 4, 9, 6, 9, 8, 3, 5, 2, 0, 3, 1, 2, 7, 7, 4, 5, 0, 6, 3, 2, 6, 2, 3,
      9, 5, 7, 8, 3, 1, 8, 0, 1, 6, 9, 8, 4, 8, 0, 1, 8, 6, 9, 4, 7, 8, 8, 5,
      1, 8, 4, 3, 8, 5, 8, 6, 1, 5, 6, 0, 7, 8, 9, 1, 1, 2, 9, 4, 9, 4, 9, 5,
      4, 5, 9, 5, 0, 1, 7, 3, 7, 9, 5, 8, 3, 3, 1, 9, 5, 2, 8, 5, 3, 2, 0, 8,
      8, 0, 5, 5, 1, 1, 1, 2, 5, 4, 0, 6, 9, 8, 7, 4, 7, 1, 5, 8, 5, 2, 3, 8,
      6, 3, 0, 5, 0, 7, 1, 5, 6, 9, 3, 2, 9, 0, 9, 6, 3, 2, 9, 5, 2, 2, 7, 4,
      4, 3, 0, 4, 3, 5, 5, 7, 6, 6, 8, 9, 6, 6, 4, 8, 9, 5, 0, 4, 4, 5, 2, 4,
      4, 5, 2, 3, 1, 6, 1, 7, 3, 1, 8, 5, 6, 4, 0, 3, 0, 9, 8, 7, 1, 1, 1, 2,
      1, 7, 2, 2, 3, 8, 3, 1, 1, 3, 6, 2, 2, 2, 9, 8, 9, 3, 4, 2, 3, 3, 8, 0,
      3, 0, 8, 1, 3, 5, 3, 3, 6, 2, 7, 6, 6, 1, 4, 2, 8, 2, 8, 0, 6, 4, 4, 4,
      4, 8, 6, 6, 4, 5, 2, 3, 8, 7, 4, 9, 3, 0, 3, 5, 8, 9, 0, 7, 2, 9, 6, 2,
      9, 0, 4, 9, 1, 5, 6, 0, 4, 4, 0, 7, 7, 2, 3, 9, 0, 7, 1, 3, 8, 1, 0, 5,
      1, 5, 8, 5, 9, 3, 0, 7, 9, 6, 0, 8, 6, 6, 7, 0, 1, 7, 2, 4, 2, 7, 1, 2,
      1, 8, 8, 3, 9, 9, 8, 7, 9, 7, 9, 0, 8, 7, 9, 2, 2, 7, 4, 9, 2, 1, 9, 0,
      1, 6, 9, 9, 7, 2, 0, 8, 8, 8, 0, 9, 3, 7, 7, 6, 6, 5, 7, 2, 7, 3, 3, 3,
      0, 0, 1, 0, 5, 3, 3, 6, 7, 8, 8, 1, 2, 2, 0, 2, 3, 5, 4, 2, 1, 8, 0, 9,
      7, 5, 1, 2, 5, 4, 5, 4, 0, 5, 9, 4, 7, 5, 2, 2, 4, 3, 5, 2, 5, 8, 4, 9,
      0, 7, 7, 1, 1, 6, 7, 0, 5, 5, 6, 0, 1, 3, 6, 0, 4, 8, 3, 9, 5, 8, 6, 4,
      4, 6, 7, 0, 6, 3, 2, 4, 4, 1, 5, 7, 2, 2, 1, 5, 5, 3, 9, 7, 5, 3, 6, 9,
      7, 8, 1, 7, 9, 7, 7, 8, 4, 6, 1, 7, 4, 0, 6, 4, 9, 5, 5, 1, 4, 9, 2, 9,
      0, 8, 6, 2, 5, 6, 9, 3, 2, 1, 9, 7, 8, 4, 6, 8, 6, 2, 2, 4, 8, 2, 8, 3,
      9, 7, 2, 2, 4, 1, 3, 7, 5, 6, 5, 7, 0, 5, 6, 0, 5, 7, 4, 9, 0, 2, 6, 1,
      4, 0, 7, 9, 7, 2, 9, 6, 8, 6, 5, 2, 4, 1, 4, 5, 3, 5, 1, 0, 0, 4, 7, 4,
      8, 2, 1, 6, 6, 3, 7, 0, 4, 8, 4, 4, 0, 3, 1, 9, 9, 8, 9, 0, 0, 0, 8, 8,
      9, 5, 2, 4, 3, 4, 5, 0, 6, 5, 8, 5, 4, 1, 2, 2, 7, 5, 8, 8, 6, 6, 6, 8,
      8, 1, 1, 6, 4, 2, 7, 1, 7, 1, 4, 7, 9, 9, 2, 4, 4, 4, 2, 9, 2, 8, 2, 3,
      0, 8, 6, 3, 4, 6, 5, 6, 7, 4, 8, 1, 3, 9, 1, 9, 1, 2, 3, 1, 6, 2, 8, 2,
      4, 5, 8, 6, 1, 7, 8, 6, 6, 4, 5, 8, 3, 5, 9, 1, 2, 4, 5, 6, 6, 5, 2, 9,
      4, 7, 6, 5, 4, 5, 6, 8, 2, 8, 4, 8, 9, 1, 2, 8, 8, 3, 1, 4, 2, 6, 0, 7,
      6, 9, 0, 0, 4, 2, 2, 4, 2, 1, 9, 0, 2, 2, 6, 7, 1, 0, 5, 5, 6, 2, 6, 3,
      2, 1, 1, 1, 1, 1, 0, 9, 3, 7, 0, 5, 4, 4, 2, 1, 7, 5, 0, 6, 9, 4, 1, 6,
      5, 8, 9, 6, 0, 4, 0, 8, 0, 7, 1, 9, 8, 4, 0, 3, 8, 5, 0, 9, 6, 2, 4, 5,
      5, 4, 4, 4, 3, 6, 2, 9, 8, 1, 2, 3, 0, 9, 8, 7, 8, 7, 9, 9, 2, 7, 2, 4,
      4, 2, 8, 4, 9, 0, 9, 1, 8, 8, 8, 4, 5, 8, 0, 1, 5, 6, 1, 6, 6, 0, 9, 7,
      9, 1, 9, 1, 3, 3, 8, 7, 5, 4, 9, 9, 2, 0, 0, 5, 2, 4, 0, 6, 3, 6, 8, 9,
      9, 1, 2, 5, 6, 0, 7, 1, 7, 6, 0, 6, 0, 5, 8, 8, 6, 1, 1, 6, 4, 6, 7, 1,
      0, 9, 4, 0, 5, 0, 7, 7, 5, 4, 1, 0, 0, 2, 2, 5, 6, 9, 8, 3, 1, 5, 5, 2,
      0, 0, 0, 5, 5, 9, 3, 5, 7, 2, 9, 7, 2, 5, 7, 1, 6, 3, 6, 2, 6, 9, 5, 6,
      1, 8, 8, 2, 6, 7, 0, 4, 2, 8, 2, 5, 2, 4, 8, 3, 6, 0, 0, 8, 2, 3, 2, 5,
      7, 5, 3, 0, 4, 2, 0, 7, 5, 2, 9, 6, 3, 4, 5, 0};
  unsigned long long max = 0;
  int maxInd = 0;
  for (int i = 0; i <= 1000 - 13; i++) {
    unsigned long long prod = 1;
    for (int j = 0; j < 13; j++) {
      prod *= array[i + j];
      if (prod > max) {
        max = prod;
        maxInd = i;
      }
    }
  }
  printf("%lld\n", max);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x410,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x3f0(%rbp),%rdi
lea    0xec0(%rip),%rsi
mov    $0x3e8,%edx
call   1040 <memcpy@plt>
movq   $0x0,-0x3f8(%rbp)
movl   $0x0,-0x3fc(%rbp)
movl   $0x0,-0x400(%rbp)
cmpl   $0x3db,-0x400(%rbp)
jg     1221 <main+0x101>
movq   $0x1,-0x408(%rbp)
movl   $0x0,-0x40c(%rbp)
cmpl   $0xd,-0x40c(%rbp)
jge    1208 <main+0xe8>
mov    -0x400(%rbp),%eax
add    -0x40c(%rbp),%eax
cltq
movsbq -0x3f0(%rbp,%rax,1),%rax
ff ff
imul   -0x408(%rbp),%rax
ff
mov    %rax,-0x408(%rbp)
mov    -0x408(%rbp),%rax
cmp    -0x3f8(%rbp),%rax
jbe    11ef <main+0xcf>
mov    -0x408(%rbp),%rax
mov    %rax,-0x3f8(%rbp)
mov    -0x400(%rbp),%eax
mov    %eax,-0x3fc(%rbp)
jmp    11f4 <main+0xd4>
mov    -0x40c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40c(%rbp)
jmp    118e <main+0x6e>
jmp    120d <main+0xed>
mov    -0x400(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x400(%rbp)
jmp    1169 <main+0x49>
mov    -0x3f8(%rbp),%rsi
lea    0x11b9(%rip),%rdi
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x410,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
mov    $0x7,%r8b
mov    $0xc,%eax
xor    %esi,%esi
lea    0xede(%rip),%r9
jmp    1140 <main+0x30>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
add    $0x1,%rax
cmp    $0x3e8,%rax
je     1253 <main+0x143>
movsbq %r8b,%rdi
mov    %rdi,%rdx
cmp    %rdi,%rsi
jb     114f <main+0x3f>
mov    %rsi,%rdx
movsbq -0xb(%rax,%r9,1),%r8
imul   %r8,%rdi
mov    %rdi,%rsi
cmp    %rdx,%rdi
ja     1164 <main+0x54>
mov    %rdx,%rsi
movsbq -0xa(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rdx
cmp    %rsi,%rdi
ja     1179 <main+0x69>
mov    %rsi,%rdx
movsbq -0x9(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rsi
cmp    %rdx,%rdi
ja     118e <main+0x7e>
mov    %rdx,%rsi
movsbq -0x8(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rdx
cmp    %rsi,%rdi
ja     11a3 <main+0x93>
mov    %rsi,%rdx
movsbq -0x7(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rsi
cmp    %rdx,%rdi
ja     11b8 <main+0xa8>
mov    %rdx,%rsi
movsbq -0x6(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rdx
cmp    %rsi,%rdi
ja     11cd <main+0xbd>
mov    %rsi,%rdx
movsbq -0x5(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rsi
cmp    %rdx,%rdi
ja     11e2 <main+0xd2>
mov    %rdx,%rsi
movsbq -0x4(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rdx
cmp    %rsi,%rdi
ja     11f7 <main+0xe7>
mov    %rsi,%rdx
movsbq -0x3(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rsi
cmp    %rdx,%rdi
ja     120c <main+0xfc>
mov    %rdx,%rsi
movsbq -0x2(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rdx
cmp    %rsi,%rdi
ja     1221 <main+0x111>
mov    %rsi,%rdx
movsbq -0x1(%rax,%r9,1),%rcx
imul   %rcx,%rdi
mov    %rdi,%rcx
cmp    %rdx,%rdi
ja     1236 <main+0x126>
mov    %rdx,%rcx
movsbq (%rax,%r9,1),%rdx
imul   %rdx,%rdi
mov    %rdi,%rsi
cmp    %rcx,%rdi
ja     1130 <main+0x20>
mov    %rcx,%rsi
jmp    1130 <main+0x20>
lea    0x118e(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@__const.main.array = [1000 x i8] c"\07\03\01\06\07\01\07\06\05\03\01\03\03\00\06\02\04\09\01\09\02\02\05\01\01\09\06\07\04\04\02\06\05\07\04\07\04\02\03\05\05\03\04\09\01\09\04\09\03\04\09\06\09\08\03\05\02\00\03\01\02\07\07\04\05\00\06\03\02\06\02\03\09\05\07\08\03\01\08\00\01\06\09\08\04\08\00\01\08\06\09\04\07\08\08\05\01\08\04\03\08\05\08\06\01\05\06\00\07\08\09\01\01\02\09\04\09\04\09\05\04\05\09\05\00\01\07\03\07\09\05\08\03\03\01\09\05\02\08\05\03\02\00\08\08\00\05\05\01\01\01\02\05\04\00\06\09\08\07\04\07\01\05\08\05\02\03\08\06\03\00\05\00\07\01\05\06\09\03\02\09\00\09\06\03\02\09\05\02\02\07\04\04\03\00\04\03\05\05\07\06\06\08\09\06\06\04\08\09\05\00\04\04\05\02\04\04\05\02\03\01\06\01\07\03\01\08\05\06\04\00\03\00\09\08\07\01\01\01\02\01\07\02\02\03\08\03\01\01\03\06\02\02\02\09\08\09\03\04\02\03\03\08\00\03\00\08\01\03\05\03\03\06\02\07\06\06\01\04\02\08\02\08\00\06\04\04\04\04\08\06\06\04\05\02\03\08\07\04\09\03\00\03\05\08\09\00\07\02\09\06\02\09\00\04\09\01\05\06\00\04\04\00\07\07\02\03\09\00\07\01\03\08\01\00\05\01\05\08\05\09\03\00\07\09\06\00\08\06\06\07\00\01\07\02\04\02\07\01\02\01\08\08\03\09\09\08\07\09\07\09\00\08\07\09\02\02\07\04\09\02\01\09\00\01\06\09\09\07\02\00\08\08\08\00\09\03\07\07\06\06\05\07\02\07\03\03\03\00\00\01\00\05\03\03\06\07\08\08\01\02\02\00\02\03\05\04\02\01\08\00\09\07\05\01\02\05\04\05\04\00\05\09\04\07\05\02\02\04\03\05\02\05\08\04\09\00\07\07\01\01\06\07\00\05\05\06\00\01\03\06\00\04\08\03\09\05\08\06\04\04\06\07\00\06\03\02\04\04\01\05\07\02\02\01\05\05\03\09\07\05\03\06\09\07\08\01\07\09\07\07\08\04\06\01\07\04\00\06\04\09\05\05\01\04\09\02\09\00\08\06\02\05\06\09\03\02\01\09\07\08\04\06\08\06\02\02\04\08\02\08\03\09\07\02\02\04\01\03\07\05\06\05\07\00\05\06\00\05\07\04\09\00\02\06\01\04\00\07\09\07\02\09\06\08\06\05\02\04\01\04\05\03\05\01\00\00\04\07\04\08\02\01\06\06\03\07\00\04\08\04\04\00\03\01\09\09\08\09\00\00\00\08\08\09\05\02\04\03\04\05\00\06\05\08\05\04\01\02\02\07\05\08\08\06\06\06\08\08\01\01\06\04\02\07\01\07\01\04\07\09\09\02\04\04\04\02\09\02\08\02\03\00\08\06\03\04\06\05\06\07\04\08\01\03\09\01\09\01\02\03\01\06\02\08\02\04\05\08\06\01\07\08\06\06\04\05\08\03\05\09\01\02\04\05\06\06\05\02\09\04\07\06\05\04\05\06\08\02\08\04\08\09\01\02\08\08\03\01\04\02\06\00\07\06\09\00\00\04\02\02\04\02\01\09\00\02\02\06\07\01\00\05\05\06\02\06\03\02\01\01\01\01\01\00\09\03\07\00\05\04\04\02\01\07\05\00\06\09\04\01\06\05\08\09\06\00\04\00\08\00\07\01\09\08\04\00\03\08\05\00\09\06\02\04\05\05\04\04\04\03\06\02\09\08\01\02\03\00\09\08\07\08\07\09\09\02\07\02\04\04\02\08\04\09\00\09\01\08\08\08\04\05\08\00\01\05\06\01\06\06\00\09\07\09\01\09\01\03\03\08\07\05\04\09\09\02\00\00\05\02\04\00\06\03\06\08\09\09\01\02\05\06\00\07\01\07\06\00\06\00\05\08\08\06\01\01\06\04\06\07\01\00\09\04\00\05\00\07\07\05\04\01\00\00\02\02\05\06\09\08\03\01\05\05\02\00\00\00\05\05\09\03\05\07\02\09\07\02\05\07\01\06\03\06\02\06\09\05\06\01\08\08\02\06\07\00\04\02\08\02\05\02\04\08\03\06\00\00\08\02\03\02\05\07\05\03\00\04\02\00\07\05\02\09\06\03\04\05\00"
@.str = [6 x i8] c"%lld\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [1000 x i8]
%3 = alloca i64
%4 = alloca i32
%5 = alloca i32
%6 = alloca i64
%7 = alloca i32
store i32 0, i32* %1
%8 = bitcast [1000 x i8]* %2 to i8*
store i64 0, i64* %3
store i32 0, i32* %4
store i32 0, i32* %5
br label %9
9: ; preds = %37, %0
%10 = load i32, i32* %5
%11 = icmp sle i32 %10, 987
br i1 %11, label %12, label %40
12: ; preds = %9
store i64 1, i64* %6
store i32 0, i32* %7
br label %13
13: ; preds = %33, %12
%14 = load i32, i32* %7
%15 = icmp slt i32 %14, 13
br i1 %15, label %16, label %36
16: ; preds = %13
%17 = load i32, i32* %5
%18 = load i32, i32* %7
%19 = add nsw i32 %17, %18
%20 = sext i32 %19 to i64
%21 = getelementptr inbounds [1000 x i8], [1000 x i8]* %2, i64 0, i64 %20
%22 = load i8, i8* %21
%23 = sext i8 %22 to i64
%24 = load i64, i64* %6
%25 = mul i64 %24, %23
store i64 %25, i64* %6
%26 = load i64, i64* %6
%27 = load i64, i64* %3
%28 = icmp ugt i64 %26, %27
br i1 %28, label %29, label %32
29: ; preds = %16
%30 = load i64, i64* %6
store i64 %30, i64* %3
%31 = load i32, i32* %5
store i32 %31, i32* %4
br label %32
32: ; preds = %29, %16
br label %33
33: ; preds = %32
%34 = load i32, i32* %7
%35 = add nsw i32 %34, 1
store i32 %35, i32* %7
br label %13
36: ; preds = %13
br label %37
37: ; preds = %36
%38 = load i32, i32* %5
%39 = add nsw i32 %38, 1
store i32 %39, i32* %5
br label %9
40: ; preds = %9
%41 = load i64, i64* %3
%42 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i64 %41)
%43 = load i32, i32* %1
ret i32 %43
}

LLVM IR (-O2):
@__const.main.array = [1000 x i8] c"\07\03\01\06\07\01\07\06\05\03\01\03\03\00\06\02\04\09\01\09\02\02\05\01\01\09\06\07\04\04\02\06\05\07\04\07\04\02\03\05\05\03\04\09\01\09\04\09\03\04\09\06\09\08\03\05\02\00\03\01\02\07\07\04\05\00\06\03\02\06\02\03\09\05\07\08\03\01\08\00\01\06\09\08\04\08\00\01\08\06\09\04\07\08\08\05\01\08\04\03\08\05\08\06\01\05\06\00\07\08\09\01\01\02\09\04\09\04\09\05\04\05\09\05\00\01\07\03\07\09\05\08\03\03\01\09\05\02\08\05\03\02\00\08\08\00\05\05\01\01\01\02\05\04\00\06\09\08\07\04\07\01\05\08\05\02\03\08\06\03\00\05\00\07\01\05\06\09\03\02\09\00\09\06\03\02\09\05\02\02\07\04\04\03\00\04\03\05\05\07\06\06\08\09\06\06\04\08\09\05\00\04\04\05\02\04\04\05\02\03\01\06\01\07\03\01\08\05\06\04\00\03\00\09\08\07\01\01\01\02\01\07\02\02\03\08\03\01\01\03\06\02\02\02\09\08\09\03\04\02\03\03\08\00\03\00\08\01\03\05\03\03\06\02\07\06\06\01\04\02\08\02\08\00\06\04\04\04\04\08\06\06\04\05\02\03\08\07\04\09\03\00\03\05\08\09\00\07\02\09\06\02\09\00\04\09\01\05\06\00\04\04\00\07\07\02\03\09\00\07\01\03\08\01\00\05\01\05\08\05\09\03\00\07\09\06\00\08\06\06\07\00\01\07\02\04\02\07\01\02\01\08\08\03\09\09\08\07\09\07\09\00\08\07\09\02\02\07\04\09\02\01\09\00\01\06\09\09\07\02\00\08\08\08\00\09\03\07\07\06\06\05\07\02\07\03\03\03\00\00\01\00\05\03\03\06\07\08\08\01\02\02\00\02\03\05\04\02\01\08\00\09\07\05\01\02\05\04\05\04\00\05\09\04\07\05\02\02\04\03\05\02\05\08\04\09\00\07\07\01\01\06\07\00\05\05\06\00\01\03\06\00\04\08\03\09\05\08\06\04\04\06\07\00\06\03\02\04\04\01\05\07\02\02\01\05\05\03\09\07\05\03\06\09\07\08\01\07\09\07\07\08\04\06\01\07\04\00\06\04\09\05\05\01\04\09\02\09\00\08\06\02\05\06\09\03\02\01\09\07\08\04\06\08\06\02\02\04\08\02\08\03\09\07\02\02\04\01\03\07\05\06\05\07\00\05\06\00\05\07\04\09\00\02\06\01\04\00\07\09\07\02\09\06\08\06\05\02\04\01\04\05\03\05\01\00\00\04\07\04\08\02\01\06\06\03\07\00\04\08\04\04\00\03\01\09\09\08\09\00\00\00\08\08\09\05\02\04\03\04\05\00\06\05\08\05\04\01\02\02\07\05\08\08\06\06\06\08\08\01\01\06\04\02\07\01\07\01\04\07\09\09\02\04\04\04\02\09\02\08\02\03\00\08\06\03\04\06\05\06\07\04\08\01\03\09\01\09\01\02\03\01\06\02\08\02\04\05\08\06\01\07\08\06\06\04\05\08\03\05\09\01\02\04\05\06\06\05\02\09\04\07\06\05\04\05\06\08\02\08\04\08\09\01\02\08\08\03\01\04\02\06\00\07\06\09\00\00\04\02\02\04\02\01\09\00\02\02\06\07\01\00\05\05\06\02\06\03\02\01\01\01\01\01\00\09\03\07\00\05\04\04\02\01\07\05\00\06\09\04\01\06\05\08\09\06\00\04\00\08\00\07\01\09\08\04\00\03\08\05\00\09\06\02\04\05\05\04\04\04\03\06\02\09\08\01\02\03\00\09\08\07\08\07\09\09\02\07\02\04\04\02\08\04\09\00\09\01\08\08\08\04\05\08\00\01\05\06\01\06\06\00\09\07\09\01\09\01\03\03\08\07\05\04\09\09\02\00\00\05\02\04\00\06\03\06\08\09\09\01\02\05\06\00\07\01\07\06\00\06\00\05\08\08\06\01\01\06\04\06\07\01\00\09\04\00\05\00\07\07\05\04\01\00\00\02\02\05\06\09\08\03\01\05\05\02\00\00\00\05\05\09\03\05\07\02\09\07\02\05\07\01\06\03\06\02\06\09\05\06\01\08\08\02\06\07\00\04\02\08\02\05\02\04\08\03\06\00\00\08\02\03\02\05\07\05\03\00\04\02\00\07\05\02\09\06\03\04\05\00"
@.str = [6 x i8] c"%lld\0A\00"
define i32 @main() {
br label %1
1: ; preds = %0, %1
%2 = phi i8 [ 7, %0 ], [ %10, %1 ]
%3 = phi i64 [ 0, %0 ], [ %8, %1 ]
%4 = phi i64 [ 0, %0 ], [ %91, %1 ]
%5 = sext i8 %2 to i64
%6 = icmp ult i64 %4, %5
%7 = select i1 %6, i64 %5, i64 %4
%8 = add nuw nsw i64 %3, 1
%9 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %8
%10 = load i8, i8* %9
%11 = sext i8 %10 to i64
%12 = mul nsw i64 %5, %11
%13 = icmp ugt i64 %12, %7
%14 = select i1 %13, i64 %12, i64 %7
%15 = add nuw nsw i64 %3, 2
%16 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %15
%17 = load i8, i8* %16
%18 = sext i8 %17 to i64
%19 = mul nsw i64 %12, %18
%20 = icmp ugt i64 %19, %14
%21 = select i1 %20, i64 %19, i64 %14
%22 = add nuw nsw i64 %3, 3
%23 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %22
%24 = load i8, i8* %23
%25 = sext i8 %24 to i64
%26 = mul nsw i64 %19, %25
%27 = icmp ugt i64 %26, %21
%28 = select i1 %27, i64 %26, i64 %21
%29 = add nuw nsw i64 %3, 4
%30 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %29
%31 = load i8, i8* %30
%32 = sext i8 %31 to i64
%33 = mul nsw i64 %26, %32
%34 = icmp ugt i64 %33, %28
%35 = select i1 %34, i64 %33, i64 %28
%36 = add nuw nsw i64 %3, 5
%37 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %36
%38 = load i8, i8* %37
%39 = sext i8 %38 to i64
%40 = mul nsw i64 %33, %39
%41 = icmp ugt i64 %40, %35
%42 = select i1 %41, i64 %40, i64 %35
%43 = add nuw nsw i64 %3, 6
%44 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %43
%45 = load i8, i8* %44
%46 = sext i8 %45 to i64
%47 = mul nsw i64 %40, %46
%48 = icmp ugt i64 %47, %42
%49 = select i1 %48, i64 %47, i64 %42
%50 = add nuw nsw i64 %3, 7
%51 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %50
%52 = load i8, i8* %51
%53 = sext i8 %52 to i64
%54 = mul nsw i64 %47, %53
%55 = icmp ugt i64 %54, %49
%56 = select i1 %55, i64 %54, i64 %49
%57 = add nuw nsw i64 %3, 8
%58 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %57
%59 = load i8, i8* %58
%60 = sext i8 %59 to i64
%61 = mul nsw i64 %54, %60
%62 = icmp ugt i64 %61, %56
%63 = select i1 %62, i64 %61, i64 %56
%64 = add nuw nsw i64 %3, 9
%65 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %64
%66 = load i8, i8* %65
%67 = sext i8 %66 to i64
%68 = mul i64 %61, %67
%69 = icmp ugt i64 %68, %63
%70 = select i1 %69, i64 %68, i64 %63
%71 = add nuw nsw i64 %3, 10
%72 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %71
%73 = load i8, i8* %72
%74 = sext i8 %73 to i64
%75 = mul i64 %68, %74
%76 = icmp ugt i64 %75, %70
%77 = select i1 %76, i64 %75, i64 %70
%78 = add nuw nsw i64 %3, 11
%79 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %78
%80 = load i8, i8* %79
%81 = sext i8 %80 to i64
%82 = mul i64 %75, %81
%83 = icmp ugt i64 %82, %77
%84 = select i1 %83, i64 %82, i64 %77
%85 = add nuw nsw i64 %3, 12
%86 = getelementptr inbounds [1000 x i8], [1000 x i8]* @__const.main.array, i64 0, i64 %85
%87 = load i8, i8* %86
%88 = sext i8 %87 to i64
%89 = mul i64 %82, %88
%90 = icmp ugt i64 %89, %84
%91 = select i1 %90, i64 %89, i64 %84
%92 = icmp eq i64 %8, 988
br i1 %92, label %93, label %1
93: ; preds = %1
%94 = tail call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i64 %91)
ret i32 0
}