#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 *, ...);
int rand();
int /*<<< orphan*/ srand(unsigned int);
int strlen(char *);
scalar_t__ time(int /*<<< orphan*/);
int main() {
  int q, p, h, n, x, o, KPO, k, t, i, u, a, z, d, TAGNJDA, l;
  char *v;
  char *s;
  char *b;
  char *e;
  char *w;
  char *f;
  char *g[132] = {
      "-",  "15", "-",  "-",  "13", "-",  "14", "18", "-", "19", "-", "11",
      "12", "-",  "-",  "-",  "-",  "-",  "-",  "-",  "-", "-",  "-", "-",
      "13", "-",  "-",  "-",  "-",  "-",  "-",  "-",  "-", "-",  "-", "-",
      "-",  "-",  "-",  "-",  "-",  "-",  "10", "-",  "-", "22", "-", "-",
      "-",  "-",  "-",  "-",  "-",  "-",  "-",  "-",  "-", "-",  "-", "12",
      "-",  "16", "-",  "17", "20", "21", "-",  "-",  "-", "-",  "-", "-",
      "-",  "-",  "-",  "-",  "18", "16", "-",  "-",  "-", "-",  "-", "16",
      "-",  "-",  "20", "-",  "-",  "-",  "-",  "-",  "-", "-",  "-", "13",
      "-",  "-",  "17", "-",  "-",  "-",  "-",  "19", "-", "-",  "-", "14",
      "-",  "-",  "-",  "15", "-",  "-",  "-",  "-",  "-", "-",  "-", "-",
      "18", "-",  "-",  "-",  "-",  "-",  "-",  "-",  "-", "-",  "-", "-",
  };
  srand((unsigned)time(0));
  printf("\n");
  for (q = 0; q < 20; q++) {
    v = g[rand() % 132];
    if (KPO == 1) {
      v = "-";
    }
    k = (t + u) / 2;
    printf("%s", v);
    if (strlen(v) == 2) {
      KPO = 1;
    } else {
      printf("-");
      KPO = 0;
    }
  }
  printf("-\n");
  for (h = 0; h < 20; h++) {
    s = g[rand() % 132];
    if (KPO == 1) {
      s = "-";
    }
    printf("%s", s);
    if (strlen(s) == 2) {
      KPO = 1;
      z = 3 + 5 + 723 * 345;
    } else {
      printf("-");
      KPO = 0;
    }
  }
  printf("-\n");
  for (n = 0; n < 20; n++) {
    b = g[rand() % 132];
    if (i == 5) {
      i = 0;
      z = 1 + 486 - 35 + 644 - 75 + 863 - 693;
      (734 / 31);
      d = d + 1;
    }
    if (KPO == 1) {
      b = "-";
    }
    printf("%s", b);
    if (strlen(b) == 2) {
      KPO = 1;
    } else {
      printf("-");
      KPO = 0;
    }
  }
  printf("-\n");
  for (x = 0; x < 20; x++) {
    e = g[rand() % 132];
    if (KPO == 1) {
      e = "-";
    }
    printf("%s", e);
    if (strlen(e) == 2) {
      KPO = 1;
    } else {
      printf("-");
      KPO = 0;
    }
  }
  printf("-\n");
  for (o = 0; o < 20; o++) {
    w = g[rand() % 132];
    if (KPO == 1) {
      w = "-";
    }
    printf("%s", w);
    if (strlen(w) == 2) {
      KPO = 1;
    } else {
      printf("-");
      KPO = 0;
    }
  }
  printf("-\n");
  for (p = 0; p < 20; p++) {
    f = g[rand() % 132];
    if (KPO == 1) {
      f = "-";
    }
    printf("%s", f);
    if (strlen(f) == 2) {
      KPO = 1;
    } else {
      printf("-");
      KPO = 0;
    }
  }
  printf("-\n\n");
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x4a0,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x4a0(%rbp),%rdi
lea    0x2880(%rip),%rsi
mov    $0x420,%edx
call   2060 <memcpy@plt>
xor    %edi,%edi
call   2070 <time@plt>
mov    %eax,%edi
call   2050 <srand@plt>
lea    0xe92(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x8(%rbp)
cmpl   $0x14,-0x8(%rbp)
jge    2253 <main+0xf3>
mov    $0x0,%al
call   2080 <rand@plt>
mov    $0x84,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x4a0(%rbp,%rax,8),%rax
ff
mov    %rax,-0x50(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    21ea <main+0x8a>
lea    0xe1a(%rip),%rax
mov    %rax,-0x50(%rbp)
mov    -0x28(%rbp),%eax
add    -0x30(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x24(%rbp)
mov    -0x50(%rbp),%rsi
lea    0xe23(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x50(%rbp),%rdi
call   2030 <strlen@plt>
cmp    $0x2,%eax
jne    222b <main+0xcb>
movl   $0x1,-0x20(%rbp)
jmp    2240 <main+0xe0>
lea    0xdce(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x20(%rbp)
jmp    2245 <main+0xe5>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    21ad <main+0x4d>
lea    0xdd2(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x10(%rbp)
cmpl   $0x14,-0x10(%rbp)
jge    2304 <main+0x1a4>
mov    $0x0,%al
call   2080 <rand@plt>
mov    $0x84,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x4a0(%rbp,%rax,8),%rax
ff
mov    %rax,-0x58(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    22a5 <main+0x145>
lea    0xd5f(%rip),%rax
mov    %rax,-0x58(%rbp)
mov    -0x58(%rbp),%rsi
lea    0xd79(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x58(%rbp),%rdi
call   2030 <strlen@plt>
cmp    $0x2,%eax
jne    22dc <main+0x17c>
movl   $0x1,-0x20(%rbp)
movl   $0x3ce63,-0x38(%rbp)
jmp    22f1 <main+0x191>
lea    0xd1d(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x20(%rbp)
jmp    22f6 <main+0x196>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    2268 <main+0x108>
lea    0xd21(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x14(%rbp)
cmpl   $0x14,-0x14(%rbp)
jge    23cf <main+0x26f>
mov    $0x0,%al
call   2080 <rand@plt>
mov    $0x84,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x4a0(%rbp,%rax,8),%rax
ff
mov    %rax,-0x60(%rbp)
cmpl   $0x5,-0x2c(%rbp)
jne    2362 <main+0x202>
movl   $0x0,-0x2c(%rbp)
movl   $0x4a7,-0x38(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    2377 <main+0x217>
lea    0xc8d(%rip),%rax
mov    %rax,-0x60(%rbp)
mov    -0x60(%rbp),%rsi
lea    0xca7(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x60(%rbp),%rdi
call   2030 <strlen@plt>
cmp    $0x2,%eax
jne    23a7 <main+0x247>
movl   $0x1,-0x20(%rbp)
jmp    23bc <main+0x25c>
lea    0xc52(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x20(%rbp)
jmp    23c1 <main+0x261>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    2319 <main+0x1b9>
lea    0xc56(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x18(%rbp)
cmpl   $0x14,-0x18(%rbp)
jge    2479 <main+0x319>
mov    $0x0,%al
call   2080 <rand@plt>
mov    $0x84,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x4a0(%rbp,%rax,8),%rax
ff
mov    %rax,-0x68(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    2421 <main+0x2c1>
lea    0xbe3(%rip),%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rsi
lea    0xbfd(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x68(%rbp),%rdi
call   2030 <strlen@plt>
cmp    $0x2,%eax
jne    2451 <main+0x2f1>
movl   $0x1,-0x20(%rbp)
jmp    2466 <main+0x306>
lea    0xba8(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x20(%rbp)
jmp    246b <main+0x30b>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    23e4 <main+0x284>
lea    0xbac(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x14,-0x1c(%rbp)
jge    2523 <main+0x3c3>
mov    $0x0,%al
call   2080 <rand@plt>
mov    $0x84,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x4a0(%rbp,%rax,8),%rax
ff
mov    %rax,-0x70(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    24cb <main+0x36b>
lea    0xb39(%rip),%rax
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rsi
lea    0xb53(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x70(%rbp),%rdi
call   2030 <strlen@plt>
cmp    $0x2,%eax
jne    24fb <main+0x39b>
movl   $0x1,-0x20(%rbp)
jmp    2510 <main+0x3b0>
lea    0xafe(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x20(%rbp)
jmp    2515 <main+0x3b5>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    248e <main+0x32e>
lea    0xb02(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x14,-0xc(%rbp)
jge    25cd <main+0x46d>
mov    $0x0,%al
call   2080 <rand@plt>
mov    $0x84,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x4a0(%rbp,%rax,8),%rax
ff
mov    %rax,-0x78(%rbp)
cmpl   $0x1,-0x20(%rbp)
jne    2575 <main+0x415>
lea    0xa8f(%rip),%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rsi
lea    0xaa9(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x78(%rbp),%rdi
call   2030 <strlen@plt>
cmp    $0x2,%eax
jne    25a5 <main+0x445>
movl   $0x1,-0x20(%rbp)
jmp    25ba <main+0x45a>
lea    0xa54(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
movl   $0x0,-0x20(%rbp)
jmp    25bf <main+0x45f>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    2538 <main+0x3d8>
lea    0xa5b(%rip),%rdi
mov    $0x0,%al
call   2040 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x4a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
xor    %edi,%edi
call   2080 <time@plt>
mov    %eax,%edi
call   2070 <srand@plt>
mov    $0xa,%edi
call   2030 <putchar@plt>
mov    $0x14,%r15d
lea    0x2860(%rip),%r12
lea    0xe83(%rip),%r13
lea    0xe79(%rip),%r14
jmp    21b6 <main+0x46>
add    $0xffffffff,%r15d
je     2218 <main+0xa8>
xor    %eax,%eax
call   2090 <rand@plt>
mov    %r13,%rbx
cmp    $0x1,%ebp
je     21eb <main+0x7b>
cltq
imul   $0x3e0f83e1,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x25,%rcx
add    %edx,%ecx
mov    %ecx,%edx
shl    $0x7,%edx
lea    (%rdx,%rcx,4),%ecx
sub    %ecx,%eax
cltq
mov    (%r12,%rax,8),%rbx
mov    %r14,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   2060 <printf@plt>
mov    %rbx,%rdi
call   2050 <strlen@plt>
mov    $0x1,%ebp
cmp    $0x2,%eax
je     21b0 <main+0x40>
mov    $0x2d,%edi
call   2030 <putchar@plt>
xor    %ebp,%ebp
jmp    21b0 <main+0x40>
lea    0xe0b(%rip),%r14
mov    %r14,%rdi
call   2040 <puts@plt>
mov    $0x14,%r13d
lea    0xdf3(%rip),%r15
jmp    2246 <main+0xd6>
cs nopw 0x0(%rax,%rax,1)
add    $0xffffffff,%r13d
je     22a8 <main+0x138>
xor    %eax,%eax
call   2090 <rand@plt>
mov    %r14,%rbx
cmp    $0x1,%ebp
je     227b <main+0x10b>
cltq
imul   $0x3e0f83e1,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x25,%rcx
add    %edx,%ecx
mov    %ecx,%edx
shl    $0x7,%edx
lea    (%rdx,%rcx,4),%ecx
sub    %ecx,%eax
cltq
mov    (%r12,%rax,8),%rbx
mov    %r15,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   2060 <printf@plt>
mov    %rbx,%rdi
call   2050 <strlen@plt>
mov    $0x1,%ebp
cmp    $0x2,%eax
je     2240 <main+0xd0>
mov    $0x2d,%edi
call   2030 <putchar@plt>
xor    %ebp,%ebp
jmp    2240 <main+0xd0>
lea    0xd7b(%rip),%r14
mov    %r14,%rdi
call   2040 <puts@plt>
mov    $0x14,%r13d
lea    0xd63(%rip),%r15
jmp    22d6 <main+0x166>
cs nopw 0x0(%rax,%rax,1)
add    $0xffffffff,%r13d
je     2338 <main+0x1c8>
xor    %eax,%eax
call   2090 <rand@plt>
mov    %r14,%rbx
cmp    $0x1,%ebp
je     230b <main+0x19b>
cltq
imul   $0x3e0f83e1,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x25,%rcx
add    %edx,%ecx
mov    %ecx,%edx
shl    $0x7,%edx
lea    (%rdx,%rcx,4),%ecx
sub    %ecx,%eax
cltq
mov    (%r12,%rax,8),%rbx
mov    %r15,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   2060 <printf@plt>
mov    %rbx,%rdi
call   2050 <strlen@plt>
mov    $0x1,%ebp
cmp    $0x2,%eax
je     22d0 <main+0x160>
mov    $0x2d,%edi
call   2030 <putchar@plt>
xor    %ebp,%ebp
jmp    22d0 <main+0x160>
lea    0xceb(%rip),%r14
mov    %r14,%rdi
call   2040 <puts@plt>
mov    $0x14,%r13d
lea    0xcd3(%rip),%r15
jmp    2366 <main+0x1f6>
cs nopw 0x0(%rax,%rax,1)
add    $0xffffffff,%r13d
je     23c8 <main+0x258>
xor    %eax,%eax
call   2090 <rand@plt>
mov    %r14,%rbx
cmp    $0x1,%ebp
je     239b <main+0x22b>
cltq
imul   $0x3e0f83e1,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x25,%rcx
add    %edx,%ecx
mov    %ecx,%edx
shl    $0x7,%edx
lea    (%rdx,%rcx,4),%ecx
sub    %ecx,%eax
cltq
mov    (%r12,%rax,8),%rbx
mov    %r15,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   2060 <printf@plt>
mov    %rbx,%rdi
call   2050 <strlen@plt>
mov    $0x1,%ebp
cmp    $0x2,%eax
je     2360 <main+0x1f0>
mov    $0x2d,%edi
call   2030 <putchar@plt>
xor    %ebp,%ebp
jmp    2360 <main+0x1f0>
lea    0xc5b(%rip),%r14
mov    %r14,%rdi
call   2040 <puts@plt>
mov    $0x14,%r13d
lea    0xc43(%rip),%r15
jmp    23f6 <main+0x286>
cs nopw 0x0(%rax,%rax,1)
add    $0xffffffff,%r13d
je     2458 <main+0x2e8>
xor    %eax,%eax
call   2090 <rand@plt>
mov    %r14,%rbx
cmp    $0x1,%ebp
je     242b <main+0x2bb>
cltq
imul   $0x3e0f83e1,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x25,%rcx
add    %edx,%ecx
mov    %ecx,%edx
shl    $0x7,%edx
lea    (%rdx,%rcx,4),%ecx
sub    %ecx,%eax
cltq
mov    (%r12,%rax,8),%rbx
mov    %r15,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   2060 <printf@plt>
mov    %rbx,%rdi
call   2050 <strlen@plt>
mov    $0x1,%ebp
cmp    $0x2,%eax
je     23f0 <main+0x280>
mov    $0x2d,%edi
call   2030 <putchar@plt>
xor    %ebp,%ebp
jmp    23f0 <main+0x280>
lea    0xbcb(%rip),%r14
mov    %r14,%rdi
call   2040 <puts@plt>
mov    $0x14,%r13d
lea    0xbb3(%rip),%r15
jmp    2486 <main+0x316>
cs nopw 0x0(%rax,%rax,1)
add    $0xffffffff,%r13d
je     24e8 <main+0x378>
xor    %eax,%eax
call   2090 <rand@plt>
mov    %r14,%rbx
cmp    $0x1,%ebp
je     24bb <main+0x34b>
cltq
imul   $0x3e0f83e1,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x25,%rcx
add    %edx,%ecx
mov    %ecx,%edx
shl    $0x7,%edx
lea    (%rdx,%rcx,4),%ecx
sub    %ecx,%eax
cltq
mov    (%r12,%rax,8),%rbx
mov    %r15,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   2060 <printf@plt>
mov    %rbx,%rdi
call   2050 <strlen@plt>
mov    $0x1,%ebp
cmp    $0x2,%eax
je     2480 <main+0x310>
mov    $0x2d,%edi
call   2030 <putchar@plt>
xor    %ebp,%ebp
jmp    2480 <main+0x310>
lea    0xb3d(%rip),%rdi
call   2040 <puts@plt>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [2 x i8] c"-\00"
@.str.1 = [3 x i8] c"15\00"
@.str.2 = [3 x i8] c"13\00"
@.str.3 = [3 x i8] c"14\00"
@.str.4 = [3 x i8] c"18\00"
@.str.5 = [3 x i8] c"19\00"
@.str.6 = [3 x i8] c"11\00"
@.str.7 = [3 x i8] c"12\00"
@.str.8 = [3 x i8] c"10\00"
@.str.9 = [3 x i8] c"22\00"
@.str.10 = [3 x i8] c"16\00"
@.str.11 = [3 x i8] c"17\00"
@.str.12 = [3 x i8] c"20\00"
@.str.13 = [3 x i8] c"21\00"
@__const.main.g = [132 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0)]
@.str.14 = [2 x i8] c"\0A\00"
@.str.15 = [3 x i8] c"%s\00"
@.str.16 = [3 x i8] c"-\0A\00"
@.str.17 = [4 x i8] c"-\0A\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i8*
%19 = alloca i8*
%20 = alloca i8*
%21 = alloca i8*
%22 = alloca i8*
%23 = alloca i8*
%24 = alloca [132 x i8*]
store i32 0, i32* %1
%25 = bitcast [132 x i8*]* %24 to i8*
%26 = call i64 @time(i32 0)
%27 = trunc i64 %26 to i32
%28 = call i32 @srand(i32 %27)
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.14, i64 0, i64 0))
store i32 0, i32* %2
br label %30
30: ; preds = %56, %0
%31 = load i32, i32* %2
%32 = icmp slt i32 %31, 20
br i1 %32, label %33, label %59
33: ; preds = %30
%34 = call i32 (...) @rand()
%35 = srem i32 %34, 132
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds [132 x i8*], [132 x i8*]* %24, i64 0, i64 %36
%38 = load i8*, i8** %37
store i8* %38, i8** %18
%39 = load i32, i32* %8
%40 = icmp eq i32 %39, 1
br i1 %40, label %41, label %42
41: ; preds = %33
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0), i8** %18
br label %42
42: ; preds = %41, %33
%43 = load i32, i32* %10
%44 = load i32, i32* %12
%45 = add nsw i32 %43, %44
%46 = sdiv i32 %45, 2
store i32 %46, i32* %9
%47 = load i8*, i8** %18
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %47)
%49 = load i8*, i8** %18
%50 = call i32 @strlen(i8* %49)
%51 = icmp eq i32 %50, 2
br i1 %51, label %52, label %53
52: ; preds = %42
store i32 1, i32* %8
br label %55
53: ; preds = %42
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %8
br label %55
55: ; preds = %53, %52
br label %56
56: ; preds = %55
%57 = load i32, i32* %2
%58 = add nsw i32 %57, 1
store i32 %58, i32* %2
br label %30
59: ; preds = %30
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
store i32 0, i32* %4
br label %61
61: ; preds = %83, %59
%62 = load i32, i32* %4
%63 = icmp slt i32 %62, 20
br i1 %63, label %64, label %86
64: ; preds = %61
%65 = call i32 (...) @rand()
%66 = srem i32 %65, 132
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [132 x i8*], [132 x i8*]* %24, i64 0, i64 %67
%69 = load i8*, i8** %68
store i8* %69, i8** %19
%70 = load i32, i32* %8
%71 = icmp eq i32 %70, 1
br i1 %71, label %72, label %73
72: ; preds = %64
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0), i8** %19
br label %73
73: ; preds = %72, %64
%74 = load i8*, i8** %19
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %74)
%76 = load i8*, i8** %19
%77 = call i32 @strlen(i8* %76)
%78 = icmp eq i32 %77, 2
br i1 %78, label %79, label %80
79: ; preds = %73
store i32 1, i32* %8
store i32 249443, i32* %14
br label %82
80: ; preds = %73
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %8
br label %82
82: ; preds = %80, %79
br label %83
83: ; preds = %82
%84 = load i32, i32* %4
%85 = add nsw i32 %84, 1
store i32 %85, i32* %4
br label %61
86: ; preds = %61
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
store i32 0, i32* %5
br label %88
88: ; preds = %116, %86
%89 = load i32, i32* %5
%90 = icmp slt i32 %89, 20
br i1 %90, label %91, label %119
91: ; preds = %88
%92 = call i32 (...) @rand()
%93 = srem i32 %92, 132
%94 = sext i32 %93 to i64
%95 = getelementptr inbounds [132 x i8*], [132 x i8*]* %24, i64 0, i64 %94
%96 = load i8*, i8** %95
store i8* %96, i8** %20
%97 = load i32, i32* %11
%98 = icmp eq i32 %97, 5
br i1 %98, label %99, label %102
99: ; preds = %91
store i32 0, i32* %11
store i32 1191, i32* %14
%100 = load i32, i32* %15
%101 = add nsw i32 %100, 1
store i32 %101, i32* %15
br label %102
102: ; preds = %99, %91
%103 = load i32, i32* %8
%104 = icmp eq i32 %103, 1
br i1 %104, label %105, label %106
105: ; preds = %102
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0), i8** %20
br label %106
106: ; preds = %105, %102
%107 = load i8*, i8** %20
%108 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %107)
%109 = load i8*, i8** %20
%110 = call i32 @strlen(i8* %109)
%111 = icmp eq i32 %110, 2
br i1 %111, label %112, label %113
112: ; preds = %106
store i32 1, i32* %8
br label %115
113: ; preds = %106
%114 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %8
br label %115
115: ; preds = %113, %112
br label %116
116: ; preds = %115
%117 = load i32, i32* %5
%118 = add nsw i32 %117, 1
store i32 %118, i32* %5
br label %88
119: ; preds = %88
%120 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
store i32 0, i32* %6
br label %121
121: ; preds = %143, %119
%122 = load i32, i32* %6
%123 = icmp slt i32 %122, 20
br i1 %123, label %124, label %146
124: ; preds = %121
%125 = call i32 (...) @rand()
%126 = srem i32 %125, 132
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds [132 x i8*], [132 x i8*]* %24, i64 0, i64 %127
%129 = load i8*, i8** %128
store i8* %129, i8** %21
%130 = load i32, i32* %8
%131 = icmp eq i32 %130, 1
br i1 %131, label %132, label %133
132: ; preds = %124
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0), i8** %21
br label %133
133: ; preds = %132, %124
%134 = load i8*, i8** %21
%135 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %134)
%136 = load i8*, i8** %21
%137 = call i32 @strlen(i8* %136)
%138 = icmp eq i32 %137, 2
br i1 %138, label %139, label %140
139: ; preds = %133
store i32 1, i32* %8
br label %142
140: ; preds = %133
%141 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %8
br label %142
142: ; preds = %140, %139
br label %143
143: ; preds = %142
%144 = load i32, i32* %6
%145 = add nsw i32 %144, 1
store i32 %145, i32* %6
br label %121
146: ; preds = %121
%147 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
store i32 0, i32* %7
br label %148
148: ; preds = %170, %146
%149 = load i32, i32* %7
%150 = icmp slt i32 %149, 20
br i1 %150, label %151, label %173
151: ; preds = %148
%152 = call i32 (...) @rand()
%153 = srem i32 %152, 132
%154 = sext i32 %153 to i64
%155 = getelementptr inbounds [132 x i8*], [132 x i8*]* %24, i64 0, i64 %154
%156 = load i8*, i8** %155
store i8* %156, i8** %22
%157 = load i32, i32* %8
%158 = icmp eq i32 %157, 1
br i1 %158, label %159, label %160
159: ; preds = %151
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0), i8** %22
br label %160
160: ; preds = %159, %151
%161 = load i8*, i8** %22
%162 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %161)
%163 = load i8*, i8** %22
%164 = call i32 @strlen(i8* %163)
%165 = icmp eq i32 %164, 2
br i1 %165, label %166, label %167
166: ; preds = %160
store i32 1, i32* %8
br label %169
167: ; preds = %160
%168 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %8
br label %169
169: ; preds = %167, %166
br label %170
170: ; preds = %169
%171 = load i32, i32* %7
%172 = add nsw i32 %171, 1
store i32 %172, i32* %7
br label %148
173: ; preds = %148
%174 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
store i32 0, i32* %3
br label %175
175: ; preds = %197, %173
%176 = load i32, i32* %3
%177 = icmp slt i32 %176, 20
br i1 %177, label %178, label %200
178: ; preds = %175
%179 = call i32 (...) @rand()
%180 = srem i32 %179, 132
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds [132 x i8*], [132 x i8*]* %24, i64 0, i64 %181
%183 = load i8*, i8** %182
store i8* %183, i8** %23
%184 = load i32, i32* %8
%185 = icmp eq i32 %184, 1
br i1 %185, label %186, label %187
186: ; preds = %178
store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0), i8** %23
br label %187
187: ; preds = %186, %178
%188 = load i8*, i8** %23
%189 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %188)
%190 = load i8*, i8** %23
%191 = call i32 @strlen(i8* %190)
%192 = icmp eq i32 %191, 2
br i1 %192, label %193, label %194
193: ; preds = %187
store i32 1, i32* %8
br label %196
194: ; preds = %187
%195 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %8
br label %196
196: ; preds = %194, %193
br label %197
197: ; preds = %196
%198 = load i32, i32* %3
%199 = add nsw i32 %198, 1
store i32 %199, i32* %3
br label %175
200: ; preds = %175
%201 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
%202 = load i32, i32* %1
ret i32 %202
}

LLVM IR (-O2):
@.str.1 = [3 x i8] c"15\00"
@.str.2 = [3 x i8] c"13\00"
@.str.3 = [3 x i8] c"14\00"
@.str.4 = [3 x i8] c"18\00"
@.str.5 = [3 x i8] c"19\00"
@.str.6 = [3 x i8] c"11\00"
@.str.7 = [3 x i8] c"12\00"
@.str.8 = [3 x i8] c"10\00"
@.str.9 = [3 x i8] c"22\00"
@.str.10 = [3 x i8] c"16\00"
@.str.11 = [3 x i8] c"17\00"
@.str.12 = [3 x i8] c"20\00"
@.str.13 = [3 x i8] c"21\00"
@__const.main.g = [132 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i32 0, i32 0)]
@.str.15 = [3 x i8] c"%s\00"
@str.21 = [2 x i8] c"-\00"
@str.22 = [3 x i8] c"-\0A\00"
define i32 @main() {
%1 = tail call i64 @time(i32 0)
%2 = trunc i64 %1 to i32
%3 = tail call i32 @srand(i32 %2)
%4 = tail call i32 @putchar(i32 10)
br label %5
5: ; preds = %0, %20
%6 = phi i32 [ 0, %0 ], [ %22, %20 ]
%7 = phi i32 [ undef, %0 ], [ %21, %20 ]
%8 = tail call i32 (...) @rand()
%9 = srem i32 %8, 132
%10 = sext i32 %9 to i64
%11 = getelementptr inbounds [132 x i8*], [132 x i8*]* @__const.main.g, i64 0, i64 %10
%12 = load i8*, i8** %11
%13 = icmp eq i32 %7, 1
%14 = select i1 %13, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0), i8* %12
%15 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %14)
%16 = tail call i32 @strlen(i8* %14)
%17 = icmp eq i32 %16, 2
br i1 %17, label %20, label %18
18: ; preds = %5
%19 = tail call i32 @putchar(i32 45)
br label %20
20: ; preds = %5, %18
%21 = phi i32 [ 0, %18 ], [ 1, %5 ]
%22 = add nuw nsw i32 %6, 1
%23 = icmp eq i32 %22, 20
br i1 %23, label %24, label %5
24: ; preds = %20
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0))
br label %26
26: ; preds = %24, %41
%27 = phi i32 [ 0, %24 ], [ %43, %41 ]
%28 = phi i32 [ %21, %24 ], [ %42, %41 ]
%29 = tail call i32 (...) @rand()
%30 = srem i32 %29, 132
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds [132 x i8*], [132 x i8*]* @__const.main.g, i64 0, i64 %31
%33 = load i8*, i8** %32
%34 = icmp eq i32 %28, 1
%35 = select i1 %34, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0), i8* %33
%36 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %35)
%37 = tail call i32 @strlen(i8* %35)
%38 = icmp eq i32 %37, 2
br i1 %38, label %41, label %39
39: ; preds = %26
%40 = tail call i32 @putchar(i32 45)
br label %41
41: ; preds = %26, %39
%42 = phi i32 [ 0, %39 ], [ 1, %26 ]
%43 = add nuw nsw i32 %27, 1
%44 = icmp eq i32 %43, 20
br i1 %44, label %45, label %26
45: ; preds = %41
%46 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0))
br label %47
47: ; preds = %45, %62
%48 = phi i32 [ 0, %45 ], [ %64, %62 ]
%49 = phi i32 [ %42, %45 ], [ %63, %62 ]
%50 = tail call i32 (...) @rand()
%51 = srem i32 %50, 132
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [132 x i8*], [132 x i8*]* @__const.main.g, i64 0, i64 %52
%54 = load i8*, i8** %53
%55 = icmp eq i32 %49, 1
%56 = select i1 %55, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0), i8* %54
%57 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %56)
%58 = tail call i32 @strlen(i8* %56)
%59 = icmp eq i32 %58, 2
br i1 %59, label %62, label %60
60: ; preds = %47
%61 = tail call i32 @putchar(i32 45)
br label %62
62: ; preds = %47, %60
%63 = phi i32 [ 0, %60 ], [ 1, %47 ]
%64 = add nuw nsw i32 %48, 1
%65 = icmp eq i32 %64, 20
br i1 %65, label %66, label %47
66: ; preds = %62
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0))
br label %68
68: ; preds = %66, %83
%69 = phi i32 [ 0, %66 ], [ %85, %83 ]
%70 = phi i32 [ %63, %66 ], [ %84, %83 ]
%71 = tail call i32 (...) @rand()
%72 = srem i32 %71, 132
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds [132 x i8*], [132 x i8*]* @__const.main.g, i64 0, i64 %73
%75 = load i8*, i8** %74
%76 = icmp eq i32 %70, 1
%77 = select i1 %76, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0), i8* %75
%78 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %77)
%79 = tail call i32 @strlen(i8* %77)
%80 = icmp eq i32 %79, 2
br i1 %80, label %83, label %81
81: ; preds = %68
%82 = tail call i32 @putchar(i32 45)
br label %83
83: ; preds = %68, %81
%84 = phi i32 [ 0, %81 ], [ 1, %68 ]
%85 = add nuw nsw i32 %69, 1
%86 = icmp eq i32 %85, 20
br i1 %86, label %87, label %68
87: ; preds = %83
%88 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0))
br label %89
89: ; preds = %87, %104
%90 = phi i32 [ 0, %87 ], [ %106, %104 ]
%91 = phi i32 [ %84, %87 ], [ %105, %104 ]
%92 = tail call i32 (...) @rand()
%93 = srem i32 %92, 132
%94 = sext i32 %93 to i64
%95 = getelementptr inbounds [132 x i8*], [132 x i8*]* @__const.main.g, i64 0, i64 %94
%96 = load i8*, i8** %95
%97 = icmp eq i32 %91, 1
%98 = select i1 %97, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0), i8* %96
%99 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %98)
%100 = tail call i32 @strlen(i8* %98)
%101 = icmp eq i32 %100, 2
br i1 %101, label %104, label %102
102: ; preds = %89
%103 = tail call i32 @putchar(i32 45)
br label %104
104: ; preds = %89, %102
%105 = phi i32 [ 0, %102 ], [ 1, %89 ]
%106 = add nuw nsw i32 %90, 1
%107 = icmp eq i32 %106, 20
br i1 %107, label %108, label %89
108: ; preds = %104
%109 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0))
br label %110
110: ; preds = %108, %125
%111 = phi i32 [ 0, %108 ], [ %127, %125 ]
%112 = phi i32 [ %105, %108 ], [ %126, %125 ]
%113 = tail call i32 (...) @rand()
%114 = srem i32 %113, 132
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [132 x i8*], [132 x i8*]* @__const.main.g, i64 0, i64 %115
%117 = load i8*, i8** %116
%118 = icmp eq i32 %112, 1
%119 = select i1 %118, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @str.21, i64 0, i64 0), i8* %117
%120 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i8* %119)
%121 = tail call i32 @strlen(i8* %119)
%122 = icmp eq i32 %121, 2
br i1 %122, label %125, label %123
123: ; preds = %110
%124 = tail call i32 @putchar(i32 45)
br label %125
125: ; preds = %110, %123
%126 = phi i32 [ 0, %123 ], [ 1, %110 ]
%127 = add nuw nsw i32 %111, 1
%128 = icmp eq i32 %127, 20
br i1 %128, label %129, label %110
129: ; preds = %125
%130 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @str.22, i64 0, i64 0))
ret i32 0
}