int main() {
  int n, r, c;
  int i, j, k, len;
  char a[1000];
  while (scanf("%d %s", &n, &a) == 2) {
    if (n == 0)
      break;
    r = 2 * n + 3;
    c = n + 2;
    len = strlen(a);
    for (j = 0; j < r; j++) {
      for (i = 0; i < len; i++) {
        if (i > 0)
          printf(" ");
        if (a[i] == '0') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++)
              printf(" ");
          } else {
            for (k = 0; k < c; k++) {
              if (k == 0 || k == n + 1)
                printf("|");
              else
                printf(" ");
            }
          }
        } else if (a[i] == '1') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++)
              printf(" ");
          } else {
            for (k = 0; k < c; k++) {
              if (k == n + 1)
                printf("|");
              else
                printf(" ");
            }
          }
        } else if (a[i] == '2') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            if (j < r / 2) {
              for (k = 0; k < c; k++) {
                if (k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
            } else
              for (k = 0; k < c; k++) {
                if (k == 0)
                  printf("|");
                else
                  printf(" ");
              }
          }
        } else if (a[i] == '3') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            for (k = 0; k < c; k++) {
              if (k == n + 1)
                printf("|");
              else
                printf(" ");
            }
          }
        } else if (a[i] == '4') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            if (j < r / 2) {
              for (k = 0; k < c; k++) {
                if (k == 0 || k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
            } else
              for (k = 0; k < c; k++) {
                if (k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
          }
        } else if (a[i] == '5') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            if (j < r / 2) {
              for (k = 0; k < c; k++) {
                if (k == 0)
                  printf("|");
                else
                  printf(" ");
              }
            } else
              for (k = 0; k < c; k++) {
                if (k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
          }
        } else if (a[i] == '6') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            if (j < r / 2) {
              for (k = 0; k < c; k++) {
                if (k == 0)
                  printf("|");
                else
                  printf(" ");
              }
            } else
              for (k = 0; k < c; k++) {
                if (k == 0 || k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
          }
        } else if (a[i] == '7') {
          if (j == 0) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              printf(" ");
            }
          } else {
            for (k = 0; k < c; k++) {
              if (k == n + 1 && j < r - 1)
                printf("|");
              else
                printf(" ");
            }
          }
        } else if (a[i] == '8') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            for (k = 0; k < c; k++) {
              if (k == 0 || k == n + 1)
                printf("|");
              else
                printf(" ");
            }
          }
        } else if (a[i] == '9') {
          if (j == 0 || j == r - 1) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else if (j == r / 2) {
            for (k = 0; k < c; k++) {
              if (k > 0 && k < c - 1)
                printf("-");
              else
                printf(" ");
            }
          } else {
            if (j < r / 2) {
              for (k = 0; k < c; k++) {
                if (k == 0 || k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
            } else
              for (k = 0; k < c; k++) {
                if (k == n + 1)
                  printf("|");
                else
                  printf(" ");
              }
          }
        }
      }
      printf("\n");
    }
    printf("\n");
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x450,%rsp
movl   $0x0,-0x4(%rbp)
lea    0x1eb7(%rip),%rdi
lea    -0x8(%rbp),%rsi
lea    -0x410(%rbp),%rdx
mov    $0x0,%al
call   1050 <scanf@plt>
cmp    $0x2,%eax
jne    235a <main+0x122a>
cmpl   $0x0,-0x8(%rbp)
jne    1173 <main+0x43>
jmp    235a <main+0x122a>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
add    $0x3,%eax
mov    %eax,-0xc(%rbp)
mov    -0x8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x10(%rbp)
lea    -0x410(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x20(%rbp)
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    2347 <main+0x1217>
movl   $0x0,-0x14(%rbp)
mov    -0x14(%rbp),%eax
cmp    -0x20(%rbp),%eax
jge    232b <main+0x11fb>
cmpl   $0x0,-0x14(%rbp)
jle    11d5 <main+0xa5>
lea    0x1e38(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x30,%eax
jne    1335 <main+0x205>
cmpl   $0x0,-0x18(%rbp)
je     1205 <main+0xd5>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    126c <main+0x13c>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1267 <main+0x137>
cmpl   $0x0,-0x1c(%rbp)
jle    1246 <main+0x116>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1246 <main+0x116>
lea    0x1dce(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1254 <main+0x124>
lea    0x1db9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1259 <main+0x129>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    120c <main+0xdc>
jmp    1330 <main+0x200>
mov    -0x18(%rbp),%eax
mov    %eax,-0x414(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x414(%rbp),%eax
cmp    %ecx,%eax
jne    12c4 <main+0x194>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    12bf <main+0x18f>
lea    0x1d5c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1297 <main+0x167>
jmp    132b <main+0x1fb>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1326 <main+0x1f6>
cmpl   $0x0,-0x1c(%rbp)
je     12f2 <main+0x1c2>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    1305 <main+0x1d5>
lea    0x1d11(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1313 <main+0x1e3>
lea    0x1cfa(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1318 <main+0x1e8>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    12cb <main+0x19b>
jmp    132b <main+0x1fb>
jmp    1330 <main+0x200>
jmp    2318 <main+0x11e8>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x31,%eax
jne    1458 <main+0x328>
cmpl   $0x0,-0x18(%rbp)
je     1365 <main+0x235>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    1399 <main+0x269>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1394 <main+0x264>
lea    0x1c87(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    136c <main+0x23c>
jmp    1453 <main+0x323>
mov    -0x18(%rbp),%eax
mov    %eax,-0x418(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x418(%rbp),%eax
cmp    %ecx,%eax
jne    13f1 <main+0x2c1>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    13ec <main+0x2bc>
lea    0x1c2f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    13c4 <main+0x294>
jmp    144e <main+0x31e>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1449 <main+0x319>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    1428 <main+0x2f8>
lea    0x1bee(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1436 <main+0x306>
lea    0x1bd7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    143b <main+0x30b>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    13f8 <main+0x2c8>
jmp    144e <main+0x31e>
jmp    1453 <main+0x323>
jmp    2313 <main+0x11e3>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x32,%eax
jne    1660 <main+0x530>
cmpl   $0x0,-0x18(%rbp)
je     1488 <main+0x358>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    14ef <main+0x3bf>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    14ea <main+0x3ba>
cmpl   $0x0,-0x1c(%rbp)
jle    14c9 <main+0x399>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    14c9 <main+0x399>
lea    0x1b4b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    14d7 <main+0x3a7>
lea    0x1b36(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    14dc <main+0x3ac>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    148f <main+0x35f>
jmp    165b <main+0x52b>
mov    -0x18(%rbp),%eax
mov    %eax,-0x41c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x41c(%rbp),%eax
cmp    %ecx,%eax
jne    157a <main+0x44a>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1575 <main+0x445>
cmpl   $0x0,-0x1c(%rbp)
jle    1554 <main+0x424>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1554 <main+0x424>
lea    0x1ac0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1562 <main+0x432>
lea    0x1aab(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1567 <main+0x437>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    151a <main+0x3ea>
jmp    1656 <main+0x526>
mov    -0x18(%rbp),%eax
mov    %eax,-0x420(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x420(%rbp),%eax
cmp    %ecx,%eax
jge    15fb <main+0x4cb>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    15f6 <main+0x4c6>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    15d5 <main+0x4a5>
lea    0x1a41(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15e3 <main+0x4b3>
lea    0x1a2a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15e8 <main+0x4b8>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    15a5 <main+0x475>
jmp    1651 <main+0x521>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    164c <main+0x51c>
cmpl   $0x0,-0x1c(%rbp)
jne    162b <main+0x4fb>
lea    0x19eb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1639 <main+0x509>
lea    0x19d4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    163e <main+0x50e>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1602 <main+0x4d2>
jmp    1651 <main+0x521>
jmp    1656 <main+0x526>
jmp    165b <main+0x52b>
jmp    230e <main+0x11de>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x33,%eax
jne    17e9 <main+0x6b9>
cmpl   $0x0,-0x18(%rbp)
je     1690 <main+0x560>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    16f7 <main+0x5c7>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    16f2 <main+0x5c2>
cmpl   $0x0,-0x1c(%rbp)
jle    16d1 <main+0x5a1>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    16d1 <main+0x5a1>
lea    0x1943(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    16df <main+0x5af>
lea    0x192e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    16e4 <main+0x5b4>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1697 <main+0x567>
jmp    17e4 <main+0x6b4>
mov    -0x18(%rbp),%eax
mov    %eax,-0x424(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x424(%rbp),%eax
cmp    %ecx,%eax
jne    1782 <main+0x652>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    177d <main+0x64d>
cmpl   $0x0,-0x1c(%rbp)
jle    175c <main+0x62c>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    175c <main+0x62c>
lea    0x18b8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    176a <main+0x63a>
lea    0x18a3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    176f <main+0x63f>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1722 <main+0x5f2>
jmp    17df <main+0x6af>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    17da <main+0x6aa>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    17b9 <main+0x689>
lea    0x185d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    17c7 <main+0x697>
lea    0x1846(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    17cc <main+0x69c>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1789 <main+0x659>
jmp    17df <main+0x6af>
jmp    17e4 <main+0x6b4>
jmp    2309 <main+0x11d9>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x34,%eax
jne    19cf <main+0x89f>
cmpl   $0x0,-0x18(%rbp)
je     1819 <main+0x6e9>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    184d <main+0x71d>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1848 <main+0x718>
lea    0x17d3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1820 <main+0x6f0>
jmp    19ca <main+0x89a>
mov    -0x18(%rbp),%eax
mov    %eax,-0x428(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x428(%rbp),%eax
cmp    %ecx,%eax
jne    18d8 <main+0x7a8>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    18d3 <main+0x7a3>
cmpl   $0x0,-0x1c(%rbp)
jle    18b2 <main+0x782>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    18b2 <main+0x782>
lea    0x1762(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18c0 <main+0x790>
lea    0x174d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18c5 <main+0x795>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1878 <main+0x748>
jmp    19c5 <main+0x895>
mov    -0x18(%rbp),%eax
mov    %eax,-0x42c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x42c(%rbp),%eax
cmp    %ecx,%eax
jge    1963 <main+0x833>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    195e <main+0x82e>
cmpl   $0x0,-0x1c(%rbp)
je     192a <main+0x7fa>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    193d <main+0x80d>
lea    0x16d9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    194b <main+0x81b>
lea    0x16c2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1950 <main+0x820>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1903 <main+0x7d3>
jmp    19c0 <main+0x890>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    19bb <main+0x88b>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    199a <main+0x86a>
lea    0x167c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    19a8 <main+0x878>
lea    0x1665(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    19ad <main+0x87d>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    196a <main+0x83a>
jmp    19c0 <main+0x890>
jmp    19c5 <main+0x895>
jmp    19ca <main+0x89a>
jmp    2304 <main+0x11d4>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x35,%eax
jne    1bd7 <main+0xaa7>
cmpl   $0x0,-0x18(%rbp)
je     19ff <main+0x8cf>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    1a66 <main+0x936>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1a61 <main+0x931>
cmpl   $0x0,-0x1c(%rbp)
jle    1a40 <main+0x910>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1a40 <main+0x910>
lea    0x15d4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1a4e <main+0x91e>
lea    0x15bf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1a53 <main+0x923>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1a06 <main+0x8d6>
jmp    1bd2 <main+0xaa2>
mov    -0x18(%rbp),%eax
mov    %eax,-0x430(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x430(%rbp),%eax
cmp    %ecx,%eax
jne    1af1 <main+0x9c1>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1aec <main+0x9bc>
cmpl   $0x0,-0x1c(%rbp)
jle    1acb <main+0x99b>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1acb <main+0x99b>
lea    0x1549(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1ad9 <main+0x9a9>
lea    0x1534(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1ade <main+0x9ae>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1a91 <main+0x961>
jmp    1bcd <main+0xa9d>
mov    -0x18(%rbp),%eax
mov    %eax,-0x434(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x434(%rbp),%eax
cmp    %ecx,%eax
jge    1b6b <main+0xa3b>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1b66 <main+0xa36>
cmpl   $0x0,-0x1c(%rbp)
jne    1b45 <main+0xa15>
lea    0x14d1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1b53 <main+0xa23>
lea    0x14ba(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1b58 <main+0xa28>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1b1c <main+0x9ec>
jmp    1bc8 <main+0xa98>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1bc3 <main+0xa93>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    1ba2 <main+0xa72>
lea    0x1474(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1bb0 <main+0xa80>
lea    0x145d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1bb5 <main+0xa85>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1b72 <main+0xa42>
jmp    1bc8 <main+0xa98>
jmp    1bcd <main+0xa9d>
jmp    1bd2 <main+0xaa2>
jmp    22ff <main+0x11cf>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x36,%eax
jne    1de9 <main+0xcb9>
cmpl   $0x0,-0x18(%rbp)
je     1c07 <main+0xad7>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    1c6e <main+0xb3e>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1c69 <main+0xb39>
cmpl   $0x0,-0x1c(%rbp)
jle    1c48 <main+0xb18>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1c48 <main+0xb18>
lea    0x13cc(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1c56 <main+0xb26>
lea    0x13b7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1c5b <main+0xb2b>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1c0e <main+0xade>
jmp    1de4 <main+0xcb4>
mov    -0x18(%rbp),%eax
mov    %eax,-0x438(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x438(%rbp),%eax
cmp    %ecx,%eax
jne    1cf9 <main+0xbc9>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1cf4 <main+0xbc4>
cmpl   $0x0,-0x1c(%rbp)
jle    1cd3 <main+0xba3>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1cd3 <main+0xba3>
lea    0x1341(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1ce1 <main+0xbb1>
lea    0x132c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1ce6 <main+0xbb6>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1c99 <main+0xb69>
jmp    1ddf <main+0xcaf>
mov    -0x18(%rbp),%eax
mov    %eax,-0x43c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x43c(%rbp),%eax
cmp    %ecx,%eax
jge    1d73 <main+0xc43>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1d6e <main+0xc3e>
cmpl   $0x0,-0x1c(%rbp)
jne    1d4d <main+0xc1d>
lea    0x12c9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1d5b <main+0xc2b>
lea    0x12b2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1d60 <main+0xc30>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1d24 <main+0xbf4>
jmp    1dda <main+0xcaa>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1dd5 <main+0xca5>
cmpl   $0x0,-0x1c(%rbp)
je     1da1 <main+0xc71>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    1db4 <main+0xc84>
lea    0x1262(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1dc2 <main+0xc92>
lea    0x124b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1dc7 <main+0xc97>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1d7a <main+0xc4a>
jmp    1dda <main+0xcaa>
jmp    1ddf <main+0xcaf>
jmp    1de4 <main+0xcb4>
jmp    22fa <main+0x11ca>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x37,%eax
jne    1f3f <main+0xe0f>
cmpl   $0x0,-0x18(%rbp)
jne    1e6f <main+0xd3f>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1e6a <main+0xd3a>
cmpl   $0x0,-0x1c(%rbp)
jle    1e49 <main+0xd19>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1e49 <main+0xd19>
lea    0x11cb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1e57 <main+0xd27>
lea    0x11b6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1e5c <main+0xd2c>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1e0f <main+0xcdf>
jmp    1f3a <main+0xe0a>
mov    -0x18(%rbp),%eax
mov    %eax,-0x440(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x440(%rbp),%eax
cmp    %ecx,%eax
jne    1ec7 <main+0xd97>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1ec2 <main+0xd92>
lea    0x1159(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1e9a <main+0xd6a>
jmp    1f35 <main+0xe05>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1f30 <main+0xe00>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    1f0f <main+0xddf>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1f0f <main+0xddf>
lea    0x1107(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1f1d <main+0xded>
lea    0x10f0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1f22 <main+0xdf2>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1ece <main+0xd9e>
jmp    1f35 <main+0xe05>
jmp    1f3a <main+0xe0a>
jmp    22f5 <main+0x11c5>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x38,%eax
jne    20d2 <main+0xfa2>
cmpl   $0x0,-0x18(%rbp)
je     1f6f <main+0xe3f>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    1fd6 <main+0xea6>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    1fd1 <main+0xea1>
cmpl   $0x0,-0x1c(%rbp)
jle    1fb0 <main+0xe80>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    1fb0 <main+0xe80>
lea    0x1064(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1fbe <main+0xe8e>
lea    0x104f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1fc3 <main+0xe93>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1f76 <main+0xe46>
jmp    20cd <main+0xf9d>
mov    -0x18(%rbp),%eax
mov    %eax,-0x444(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x444(%rbp),%eax
cmp    %ecx,%eax
jne    2061 <main+0xf31>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    205c <main+0xf2c>
cmpl   $0x0,-0x1c(%rbp)
jle    203b <main+0xf0b>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    203b <main+0xf0b>
lea    0xfd9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    2049 <main+0xf19>
lea    0xfc4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    204e <main+0xf1e>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2001 <main+0xed1>
jmp    20c8 <main+0xf98>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    20c3 <main+0xf93>
cmpl   $0x0,-0x1c(%rbp)
je     208f <main+0xf5f>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    20a2 <main+0xf72>
lea    0xf74(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    20b0 <main+0xf80>
lea    0xf5d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    20b5 <main+0xf85>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2068 <main+0xf38>
jmp    20c8 <main+0xf98>
jmp    20cd <main+0xf9d>
jmp    22f0 <main+0x11c0>
movslq -0x14(%rbp),%rax
movsbl -0x410(%rbp,%rax,1),%eax
ff
cmp    $0x39,%eax
jne    22eb <main+0x11bb>
cmpl   $0x0,-0x18(%rbp)
je     2102 <main+0xfd2>
mov    -0x18(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    2169 <main+0x1039>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    2164 <main+0x1034>
cmpl   $0x0,-0x1c(%rbp)
jle    2143 <main+0x1013>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    2143 <main+0x1013>
lea    0xed1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    2151 <main+0x1021>
lea    0xebc(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    2156 <main+0x1026>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2109 <main+0xfd9>
jmp    22e6 <main+0x11b6>
mov    -0x18(%rbp),%eax
mov    %eax,-0x448(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x448(%rbp),%eax
cmp    %ecx,%eax
jne    21f4 <main+0x10c4>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    21ef <main+0x10bf>
cmpl   $0x0,-0x1c(%rbp)
jle    21ce <main+0x109e>
mov    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    21ce <main+0x109e>
lea    0xe46(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    21dc <main+0x10ac>
lea    0xe31(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    21e1 <main+0x10b1>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2194 <main+0x1064>
jmp    22e1 <main+0x11b1>
mov    -0x18(%rbp),%eax
mov    %eax,-0x44c(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x44c(%rbp),%eax
cmp    %ecx,%eax
jge    227f <main+0x114f>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    227a <main+0x114a>
cmpl   $0x0,-0x1c(%rbp)
je     2246 <main+0x1116>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    2259 <main+0x1129>
lea    0xdbd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    2267 <main+0x1137>
lea    0xda6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    226c <main+0x113c>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    221f <main+0x10ef>
jmp    22dc <main+0x11ac>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    22d7 <main+0x11a7>
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jne    22b6 <main+0x1186>
lea    0xd60(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    22c4 <main+0x1194>
lea    0xd49(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    22c9 <main+0x1199>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2286 <main+0x1156>
jmp    22dc <main+0x11ac>
jmp    22e1 <main+0x11b1>
jmp    22e6 <main+0x11b6>
jmp    22eb <main+0x11bb>
jmp    22f0 <main+0x11c0>
jmp    22f5 <main+0x11c5>
jmp    22fa <main+0x11ca>
jmp    22ff <main+0x11cf>
jmp    2304 <main+0x11d4>
jmp    2309 <main+0x11d9>
jmp    230e <main+0x11de>
jmp    2313 <main+0x11e3>
jmp    2318 <main+0x11e8>
jmp    231d <main+0x11ed>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11b1 <main+0x81>
lea    0xcda(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    119e <main+0x6e>
lea    0xcbe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1142 <main+0x12>
xor    %eax,%eax
add    $0x450,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x418,%rsp
lea    0xee0(%rip),%rdi
lea    0x8(%rsp),%rsi
lea    0x30(%rsp),%rdx
xor    %eax,%eax
call   1050 <scanf@plt>
cmp    $0x2,%eax
jne    1ab8 <main+0x988>
mov    0x8(%rsp),%r15d
test   %r15d,%r15d
je     1ab8 <main+0x988>
lea    0x30(%rsp),%rbx
mov    $0x20,%r13d
nopl   0x0(%rax,%rax,1)
mov    %rbx,%rdi
call   1040 <strlen@plt>
mov    %rax,0x20(%rsp)
cmp    $0xffffffff,%r15d
jl     1a80 <main+0x950>
lea    (%r15,%r15,1),%eax
lea    (%r15,%r15,1),%ecx
add    $0x3,%ecx
lea    0x2(%r15),%ebx
add    $0x2,%eax
mov    %eax,0x18(%rsp)
mov    %ecx,%eax
shr    $0x1f,%eax
add    %ecx,%eax
sar    %eax
mov    %eax,0x10(%rsp)
cmp    $0x2,%ebx
mov    $0x1,%eax
cmovl  %eax,%ebx
cmp    $0x2,%ecx
cmovl  %eax,%ecx
mov    %ecx,0x1c(%rsp)
mov    0x20(%rsp),%eax
mov    %rax,0x28(%rsp)
lea    -0x1(%rbx),%eax
mov    %eax,0x14(%rsp)
xor    %eax,%eax
jmp    120b <main+0xdb>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    0xc(%rsp),%eax
add    $0x1,%eax
cmp    0x1c(%rsp),%eax
je     1a80 <main+0x950>
mov    %eax,0xc(%rsp)
cmpl   $0x0,0x20(%rsp)
jle    11f0 <main+0xc0>
mov    0xc(%rsp),%ecx
test   %ecx,%ecx
sete   %al
cmp    0x18(%rsp),%ecx
sete   %cl
or     %al,%cl
mov    %cl,0x7(%rsp)
xor    %r12d,%r12d
jmp    124b <main+0x11b>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%r12
cmp    0x28(%rsp),%r12
je     11f0 <main+0xc0>
test   %r12,%r12
je     125a <main+0x12a>
mov    $0x20,%edi
call   1030 <putchar@plt>
mov    0x30(%rsp,%r12,1),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     1240 <main+0x110>
movzbl %al,%eax
lea    0xd91(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cmpb   $0x0,0x7(%rsp)
je     1473 <main+0x343>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1290 <main+0x160>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     14a4 <main+0x374>
mov    %ebx,%ebp
nopl   (%rax)
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    12c0 <main+0x190>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     14d4 <main+0x3a4>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    12f0 <main+0x1c0>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     1513 <main+0x3e3>
xor    %ebp,%ebp
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1320 <main+0x1f0>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     1553 <main+0x423>
mov    %ebx,%ebp
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    1350 <main+0x220>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     1593 <main+0x463>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1380 <main+0x250>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     15d3 <main+0x4a3>
xor    %ebp,%ebp
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    13b0 <main+0x280>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
test   %eax,%eax
je     1693 <main+0x563>
cmp    0x10(%rsp),%eax
jne    16c3 <main+0x593>
mov    %ebx,%ebp
nopl   0x0(%rax,%rax,1)
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    13f0 <main+0x2c0>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     1613 <main+0x4e3>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1420 <main+0x2f0>
jmp    1240 <main+0x110>
cmpb   $0x0,0x7(%rsp)
je     1653 <main+0x523>
xor    %ebp,%ebp
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1450 <main+0x320>
jmp    1240 <main+0x110>
mov    %ebx,%ebp
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    170a <main+0x5da>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    1490 <main+0x360>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    1757 <main+0x627>
mov    %ebx,%ebp
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    14c0 <main+0x390>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    1787 <main+0x657>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    14f0 <main+0x3c0>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    17c7 <main+0x697>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1530 <main+0x400>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    17f7 <main+0x6c7>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1570 <main+0x440>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    1847 <main+0x717>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    15b0 <main+0x480>
jmp    1240 <main+0x110>
mov    0x10(%rsp),%r14d
mov    0xc(%rsp),%ebp
cmp    %r14d,%ebp
jne    1884 <main+0x754>
xor    %ebp,%ebp
nopw   0x0(%rax,%rax,1)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    15f0 <main+0x4c0>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    18c4 <main+0x794>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1630 <main+0x500>
jmp    1240 <main+0x110>
mov    0xc(%rsp),%eax
cmp    0x10(%rsp),%eax
jne    1917 <main+0x7e7>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    1670 <main+0x540>
jmp    1240 <main+0x110>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
cmp    %r15d,%ebp
mov    $0x2d,%edi
cmovg  %r13d,%edi
test   %ebp,%ebp
cmove  %r13d,%edi
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
jne    16a0 <main+0x570>
jmp    1240 <main+0x110>
xor    %r14d,%r14d
jmp    16e2 <main+0x5b2>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%r14d
cmp    %r14d,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    0xc(%rsp),%ecx
cmp    0x18(%rsp),%ecx
mov    $0x20,%edi
mov    $0x7c,%ecx
cmovl  %ecx,%edi
cmp    %eax,%r14d
je     16d0 <main+0x5a0>
mov    $0x20,%edi
jmp    16d0 <main+0x5a0>
mov    $0x7c,%edi
call   1030 <putchar@plt>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    $0x1,%ebp
jmp    1740 <main+0x610>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     1730 <main+0x600>
mov    $0x20,%edi
jmp    1730 <main+0x600>
xor    %ebp,%ebp
jmp    1770 <main+0x640>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     1760 <main+0x630>
mov    $0x20,%edi
jmp    1760 <main+0x630>
jge    1967 <main+0x837>
xor    %ebp,%ebp
jmp    17b0 <main+0x680>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     17a0 <main+0x670>
mov    $0x20,%edi
jmp    17a0 <main+0x670>
xor    %ebp,%ebp
jmp    17e0 <main+0x6b0>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     17d0 <main+0x6a0>
mov    $0x20,%edi
jmp    17d0 <main+0x6a0>
jge    19a4 <main+0x874>
mov    $0x7c,%edi
call   1030 <putchar@plt>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    $0x1,%ebp
jmp    1830 <main+0x700>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     1820 <main+0x6f0>
mov    $0x20,%edi
jmp    1820 <main+0x6f0>
jge    19d7 <main+0x8a7>
mov    $0x7c,%edi
call   1030 <putchar@plt>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    0x14(%rsp),%ebp
nopl   0x0(%rax,%rax,1)
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    1870 <main+0x740>
jmp    1240 <main+0x110>
mov    $0x7c,%edi
call   1030 <putchar@plt>
cmp    %r14d,%ebp
jge    1a07 <main+0x8d7>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    0x14(%rsp),%ebp
nopl   0x0(%rax,%rax,1)
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    18b0 <main+0x780>
jmp    1240 <main+0x110>
mov    $0x7c,%edi
call   1030 <putchar@plt>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    $0x1,%ebp
jmp    1900 <main+0x7d0>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     18f0 <main+0x7c0>
mov    $0x20,%edi
jmp    18f0 <main+0x7c0>
jge    1a47 <main+0x917>
mov    $0x7c,%edi
call   1030 <putchar@plt>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    $0x1,%ebp
jmp    1950 <main+0x820>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     1940 <main+0x810>
mov    $0x20,%edi
jmp    1940 <main+0x810>
mov    $0x7c,%edi
call   1030 <putchar@plt>
mov    0x14(%rsp),%ebp
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x20,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    1990 <main+0x860>
jmp    1240 <main+0x110>
xor    %ebp,%ebp
jmp    19c0 <main+0x890>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     19b0 <main+0x880>
mov    $0x20,%edi
jmp    19b0 <main+0x880>
xor    %ebp,%ebp
jmp    19f0 <main+0x8c0>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     19e0 <main+0x8b0>
mov    $0x20,%edi
jmp    19e0 <main+0x8b0>
cmp    $0x7ffffffd,%r15d
ja     1240 <main+0x110>
mov    $0x1,%ebp
jmp    1a30 <main+0x900>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     1a20 <main+0x8f0>
mov    $0x20,%edi
jmp    1a20 <main+0x8f0>
xor    %ebp,%ebp
jmp    1a60 <main+0x930>
nopl   0x0(%rax,%rax,1)
call   1030 <putchar@plt>
add    $0x1,%ebp
cmp    %ebp,%ebx
je     1240 <main+0x110>
mov    0x8(%rsp),%eax
add    $0x1,%eax
mov    $0x7c,%edi
cmp    %eax,%ebp
je     1a50 <main+0x920>
mov    $0x20,%edi
jmp    1a50 <main+0x920>
nopw   0x0(%rax,%rax,1)
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x597(%rip),%rdi
lea    0x8(%rsp),%rsi
lea    0x30(%rsp),%rbx
mov    %rbx,%rdx
xor    %eax,%eax
call   1050 <scanf@plt>
cmp    $0x2,%eax
jne    1ab8 <main+0x988>
mov    0x8(%rsp),%r15d
test   %r15d,%r15d
jne    1180 <main+0x50>
xor    %eax,%eax
add    $0x418,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [6 x i8] c"%d %s\00"
@.str.1 = [2 x i8] c" \00"
@.str.2 = [2 x i8] c"-\00"
@.str.3 = [2 x i8] c"|\00"
@.str.4 = [2 x i8] c"\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 [1000 x i8]
store i32 0, i32* %1
br label %10
10: ; preds = %987, %0
%11 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32* %2, [1000 x i8]* %9)
%12 = icmp eq i32 %11, 2
br i1 %12, label %13, label %989
13: ; preds = %10
%14 = load i32, i32* %2
%15 = icmp eq i32 %14, 0
br i1 %15, label %16, label %17
16: ; preds = %13
br label %989
17: ; preds = %13
%18 = load i32, i32* %2
%19 = mul nsw i32 2, %18
%20 = add nsw i32 %19, 3
store i32 %20, i32* %3
%21 = load i32, i32* %2
%22 = add nsw i32 %21, 2
store i32 %22, i32* %4
%23 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 0
%24 = call i64 @strlen(i8* %23)
%25 = trunc i64 %24 to i32
store i32 %25, i32* %8
store i32 0, i32* %6
br label %26
26: ; preds = %984, %17
%27 = load i32, i32* %6
%28 = load i32, i32* %3
%29 = icmp slt i32 %27, %28
br i1 %29, label %30, label %987
30: ; preds = %26
store i32 0, i32* %5
br label %31
31: ; preds = %979, %30
%32 = load i32, i32* %5
%33 = load i32, i32* %8
%34 = icmp slt i32 %32, %33
br i1 %34, label %35, label %982
35: ; preds = %31
%36 = load i32, i32* %5
%37 = icmp sgt i32 %36, 0
br i1 %37, label %38, label %40
38: ; preds = %35
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %40
40: ; preds = %38, %35
%41 = load i32, i32* %5
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %42
%44 = load i8, i8* %43
%45 = sext i8 %44 to i32
%46 = icmp eq i32 %45, 48
br i1 %46, label %47, label %117
47: ; preds = %40
%48 = load i32, i32* %6
%49 = icmp eq i32 %48, 0
br i1 %49, label %55, label %50
50: ; preds = %47
%51 = load i32, i32* %6
%52 = load i32, i32* %3
%53 = sub nsw i32 %52, 1
%54 = icmp eq i32 %51, %53
br i1 %54, label %55, label %77
55: ; preds = %50, %47
store i32 0, i32* %7
br label %56
56: ; preds = %73, %55
%57 = load i32, i32* %7
%58 = load i32, i32* %4
%59 = icmp slt i32 %57, %58
br i1 %59, label %60, label %76
60: ; preds = %56
%61 = load i32, i32* %7
%62 = icmp sgt i32 %61, 0
br i1 %62, label %63, label %70
63: ; preds = %60
%64 = load i32, i32* %7
%65 = load i32, i32* %4
%66 = sub nsw i32 %65, 1
%67 = icmp slt i32 %64, %66
br i1 %67, label %68, label %70
68: ; preds = %63
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %72
70: ; preds = %63, %60
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %72
72: ; preds = %70, %68
br label %73
73: ; preds = %72
%74 = load i32, i32* %7
%75 = add nsw i32 %74, 1
store i32 %75, i32* %7
br label %56
76: ; preds = %56
br label %116
77: ; preds = %50
%78 = load i32, i32* %6
%79 = load i32, i32* %3
%80 = sdiv i32 %79, 2
%81 = icmp eq i32 %78, %80
br i1 %81, label %82, label %93
82: ; preds = %77
store i32 0, i32* %7
br label %83
83: ; preds = %89, %82
%84 = load i32, i32* %7
%85 = load i32, i32* %4
%86 = icmp slt i32 %84, %85
br i1 %86, label %87, label %92
87: ; preds = %83
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %89
89: ; preds = %87
%90 = load i32, i32* %7
%91 = add nsw i32 %90, 1
store i32 %91, i32* %7
br label %83
92: ; preds = %83
br label %115
93: ; preds = %77
store i32 0, i32* %7
br label %94
94: ; preds = %111, %93
%95 = load i32, i32* %7
%96 = load i32, i32* %4
%97 = icmp slt i32 %95, %96
br i1 %97, label %98, label %114
98: ; preds = %94
%99 = load i32, i32* %7
%100 = icmp eq i32 %99, 0
br i1 %100, label %106, label %101
101: ; preds = %98
%102 = load i32, i32* %7
%103 = load i32, i32* %2
%104 = add nsw i32 %103, 1
%105 = icmp eq i32 %102, %104
br i1 %105, label %106, label %108
106: ; preds = %101, %98
%107 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %110
108: ; preds = %101
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %110
110: ; preds = %108, %106
br label %111
111: ; preds = %110
%112 = load i32, i32* %7
%113 = add nsw i32 %112, 1
store i32 %113, i32* %7
br label %94
114: ; preds = %94
br label %115
115: ; preds = %114, %92
br label %116
116: ; preds = %115, %76
br label %978
117: ; preds = %40
%118 = load i32, i32* %5
%119 = sext i32 %118 to i64
%120 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %119
%121 = load i8, i8* %120
%122 = sext i8 %121 to i32
%123 = icmp eq i32 %122, 49
br i1 %123, label %124, label %180
124: ; preds = %117
%125 = load i32, i32* %6
%126 = icmp eq i32 %125, 0
br i1 %126, label %132, label %127
127: ; preds = %124
%128 = load i32, i32* %6
%129 = load i32, i32* %3
%130 = sub nsw i32 %129, 1
%131 = icmp eq i32 %128, %130
br i1 %131, label %132, label %143
132: ; preds = %127, %124
store i32 0, i32* %7
br label %133
133: ; preds = %139, %132
%134 = load i32, i32* %7
%135 = load i32, i32* %4
%136 = icmp slt i32 %134, %135
br i1 %136, label %137, label %142
137: ; preds = %133
%138 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %139
139: ; preds = %137
%140 = load i32, i32* %7
%141 = add nsw i32 %140, 1
store i32 %141, i32* %7
br label %133
142: ; preds = %133
br label %179
143: ; preds = %127
%144 = load i32, i32* %6
%145 = load i32, i32* %3
%146 = sdiv i32 %145, 2
%147 = icmp eq i32 %144, %146
br i1 %147, label %148, label %159
148: ; preds = %143
store i32 0, i32* %7
br label %149
149: ; preds = %155, %148
%150 = load i32, i32* %7
%151 = load i32, i32* %4
%152 = icmp slt i32 %150, %151
br i1 %152, label %153, label %158
153: ; preds = %149
%154 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %155
155: ; preds = %153
%156 = load i32, i32* %7
%157 = add nsw i32 %156, 1
store i32 %157, i32* %7
br label %149
158: ; preds = %149
br label %178
159: ; preds = %143
store i32 0, i32* %7
br label %160
160: ; preds = %174, %159
%161 = load i32, i32* %7
%162 = load i32, i32* %4
%163 = icmp slt i32 %161, %162
br i1 %163, label %164, label %177
164: ; preds = %160
%165 = load i32, i32* %7
%166 = load i32, i32* %2
%167 = add nsw i32 %166, 1
%168 = icmp eq i32 %165, %167
br i1 %168, label %169, label %171
169: ; preds = %164
%170 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %173
171: ; preds = %164
%172 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %173
173: ; preds = %171, %169
br label %174
174: ; preds = %173
%175 = load i32, i32* %7
%176 = add nsw i32 %175, 1
store i32 %176, i32* %7
br label %160
177: ; preds = %160
br label %178
178: ; preds = %177, %158
br label %179
179: ; preds = %178, %142
br label %977
180: ; preds = %117
%181 = load i32, i32* %5
%182 = sext i32 %181 to i64
%183 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %182
%184 = load i8, i8* %183
%185 = sext i8 %184 to i32
%186 = icmp eq i32 %185, 50
br i1 %186, label %187, label %288
187: ; preds = %180
%188 = load i32, i32* %6
%189 = icmp eq i32 %188, 0
br i1 %189, label %195, label %190
190: ; preds = %187
%191 = load i32, i32* %6
%192 = load i32, i32* %3
%193 = sub nsw i32 %192, 1
%194 = icmp eq i32 %191, %193
br i1 %194, label %195, label %217
195: ; preds = %190, %187
store i32 0, i32* %7
br label %196
196: ; preds = %213, %195
%197 = load i32, i32* %7
%198 = load i32, i32* %4
%199 = icmp slt i32 %197, %198
br i1 %199, label %200, label %216
200: ; preds = %196
%201 = load i32, i32* %7
%202 = icmp sgt i32 %201, 0
br i1 %202, label %203, label %210
203: ; preds = %200
%204 = load i32, i32* %7
%205 = load i32, i32* %4
%206 = sub nsw i32 %205, 1
%207 = icmp slt i32 %204, %206
br i1 %207, label %208, label %210
208: ; preds = %203
%209 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %212
210: ; preds = %203, %200
%211 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %212
212: ; preds = %210, %208
br label %213
213: ; preds = %212
%214 = load i32, i32* %7
%215 = add nsw i32 %214, 1
store i32 %215, i32* %7
br label %196
216: ; preds = %196
br label %287
217: ; preds = %190
%218 = load i32, i32* %6
%219 = load i32, i32* %3
%220 = sdiv i32 %219, 2
%221 = icmp eq i32 %218, %220
br i1 %221, label %222, label %244
222: ; preds = %217
store i32 0, i32* %7
br label %223
223: ; preds = %240, %222
%224 = load i32, i32* %7
%225 = load i32, i32* %4
%226 = icmp slt i32 %224, %225
br i1 %226, label %227, label %243
227: ; preds = %223
%228 = load i32, i32* %7
%229 = icmp sgt i32 %228, 0
br i1 %229, label %230, label %237
230: ; preds = %227
%231 = load i32, i32* %7
%232 = load i32, i32* %4
%233 = sub nsw i32 %232, 1
%234 = icmp slt i32 %231, %233
br i1 %234, label %235, label %237
235: ; preds = %230
%236 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %239
237: ; preds = %230, %227
%238 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %239
239: ; preds = %237, %235
br label %240
240: ; preds = %239
%241 = load i32, i32* %7
%242 = add nsw i32 %241, 1
store i32 %242, i32* %7
br label %223
243: ; preds = %223
br label %286
244: ; preds = %217
%245 = load i32, i32* %6
%246 = load i32, i32* %3
%247 = sdiv i32 %246, 2
%248 = icmp slt i32 %245, %247
br i1 %248, label %249, label %268
249: ; preds = %244
store i32 0, i32* %7
br label %250
250: ; preds = %264, %249
%251 = load i32, i32* %7
%252 = load i32, i32* %4
%253 = icmp slt i32 %251, %252
br i1 %253, label %254, label %267
254: ; preds = %250
%255 = load i32, i32* %7
%256 = load i32, i32* %2
%257 = add nsw i32 %256, 1
%258 = icmp eq i32 %255, %257
br i1 %258, label %259, label %261
259: ; preds = %254
%260 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %263
261: ; preds = %254
%262 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %263
263: ; preds = %261, %259
br label %264
264: ; preds = %263
%265 = load i32, i32* %7
%266 = add nsw i32 %265, 1
store i32 %266, i32* %7
br label %250
267: ; preds = %250
br label %285
268: ; preds = %244
store i32 0, i32* %7
br label %269
269: ; preds = %281, %268
%270 = load i32, i32* %7
%271 = load i32, i32* %4
%272 = icmp slt i32 %270, %271
br i1 %272, label %273, label %284
273: ; preds = %269
%274 = load i32, i32* %7
%275 = icmp eq i32 %274, 0
br i1 %275, label %276, label %278
276: ; preds = %273
%277 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %280
278: ; preds = %273
%279 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %280
280: ; preds = %278, %276
br label %281
281: ; preds = %280
%282 = load i32, i32* %7
%283 = add nsw i32 %282, 1
store i32 %283, i32* %7
br label %269
284: ; preds = %269
br label %285
285: ; preds = %284, %267
br label %286
286: ; preds = %285, %243
br label %287
287: ; preds = %286, %216
br label %976
288: ; preds = %180
%289 = load i32, i32* %5
%290 = sext i32 %289 to i64
%291 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %290
%292 = load i8, i8* %291
%293 = sext i8 %292 to i32
%294 = icmp eq i32 %293, 51
br i1 %294, label %295, label %373
295: ; preds = %288
%296 = load i32, i32* %6
%297 = icmp eq i32 %296, 0
br i1 %297, label %303, label %298
298: ; preds = %295
%299 = load i32, i32* %6
%300 = load i32, i32* %3
%301 = sub nsw i32 %300, 1
%302 = icmp eq i32 %299, %301
br i1 %302, label %303, label %325
303: ; preds = %298, %295
store i32 0, i32* %7
br label %304
304: ; preds = %321, %303
%305 = load i32, i32* %7
%306 = load i32, i32* %4
%307 = icmp slt i32 %305, %306
br i1 %307, label %308, label %324
308: ; preds = %304
%309 = load i32, i32* %7
%310 = icmp sgt i32 %309, 0
br i1 %310, label %311, label %318
311: ; preds = %308
%312 = load i32, i32* %7
%313 = load i32, i32* %4
%314 = sub nsw i32 %313, 1
%315 = icmp slt i32 %312, %314
br i1 %315, label %316, label %318
316: ; preds = %311
%317 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %320
318: ; preds = %311, %308
%319 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %320
320: ; preds = %318, %316
br label %321
321: ; preds = %320
%322 = load i32, i32* %7
%323 = add nsw i32 %322, 1
store i32 %323, i32* %7
br label %304
324: ; preds = %304
br label %372
325: ; preds = %298
%326 = load i32, i32* %6
%327 = load i32, i32* %3
%328 = sdiv i32 %327, 2
%329 = icmp eq i32 %326, %328
br i1 %329, label %330, label %352
330: ; preds = %325
store i32 0, i32* %7
br label %331
331: ; preds = %348, %330
%332 = load i32, i32* %7
%333 = load i32, i32* %4
%334 = icmp slt i32 %332, %333
br i1 %334, label %335, label %351
335: ; preds = %331
%336 = load i32, i32* %7
%337 = icmp sgt i32 %336, 0
br i1 %337, label %338, label %345
338: ; preds = %335
%339 = load i32, i32* %7
%340 = load i32, i32* %4
%341 = sub nsw i32 %340, 1
%342 = icmp slt i32 %339, %341
br i1 %342, label %343, label %345
343: ; preds = %338
%344 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %347
345: ; preds = %338, %335
%346 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %347
347: ; preds = %345, %343
br label %348
348: ; preds = %347
%349 = load i32, i32* %7
%350 = add nsw i32 %349, 1
store i32 %350, i32* %7
br label %331
351: ; preds = %331
br label %371
352: ; preds = %325
store i32 0, i32* %7
br label %353
353: ; preds = %367, %352
%354 = load i32, i32* %7
%355 = load i32, i32* %4
%356 = icmp slt i32 %354, %355
br i1 %356, label %357, label %370
357: ; preds = %353
%358 = load i32, i32* %7
%359 = load i32, i32* %2
%360 = add nsw i32 %359, 1
%361 = icmp eq i32 %358, %360
br i1 %361, label %362, label %364
362: ; preds = %357
%363 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %366
364: ; preds = %357
%365 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %366
366: ; preds = %364, %362
br label %367
367: ; preds = %366
%368 = load i32, i32* %7
%369 = add nsw i32 %368, 1
store i32 %369, i32* %7
br label %353
370: ; preds = %353
br label %371
371: ; preds = %370, %351
br label %372
372: ; preds = %371, %324
br label %975
373: ; preds = %288
%374 = load i32, i32* %5
%375 = sext i32 %374 to i64
%376 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %375
%377 = load i8, i8* %376
%378 = sext i8 %377 to i32
%379 = icmp eq i32 %378, 52
br i1 %379, label %380, label %475
380: ; preds = %373
%381 = load i32, i32* %6
%382 = icmp eq i32 %381, 0
br i1 %382, label %388, label %383
383: ; preds = %380
%384 = load i32, i32* %6
%385 = load i32, i32* %3
%386 = sub nsw i32 %385, 1
%387 = icmp eq i32 %384, %386
br i1 %387, label %388, label %399
388: ; preds = %383, %380
store i32 0, i32* %7
br label %389
389: ; preds = %395, %388
%390 = load i32, i32* %7
%391 = load i32, i32* %4
%392 = icmp slt i32 %390, %391
br i1 %392, label %393, label %398
393: ; preds = %389
%394 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %395
395: ; preds = %393
%396 = load i32, i32* %7
%397 = add nsw i32 %396, 1
store i32 %397, i32* %7
br label %389
398: ; preds = %389
br label %474
399: ; preds = %383
%400 = load i32, i32* %6
%401 = load i32, i32* %3
%402 = sdiv i32 %401, 2
%403 = icmp eq i32 %400, %402
br i1 %403, label %404, label %426
404: ; preds = %399
store i32 0, i32* %7
br label %405
405: ; preds = %422, %404
%406 = load i32, i32* %7
%407 = load i32, i32* %4
%408 = icmp slt i32 %406, %407
br i1 %408, label %409, label %425
409: ; preds = %405
%410 = load i32, i32* %7
%411 = icmp sgt i32 %410, 0
br i1 %411, label %412, label %419
412: ; preds = %409
%413 = load i32, i32* %7
%414 = load i32, i32* %4
%415 = sub nsw i32 %414, 1
%416 = icmp slt i32 %413, %415
br i1 %416, label %417, label %419
417: ; preds = %412
%418 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %421
419: ; preds = %412, %409
%420 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %421
421: ; preds = %419, %417
br label %422
422: ; preds = %421
%423 = load i32, i32* %7
%424 = add nsw i32 %423, 1
store i32 %424, i32* %7
br label %405
425: ; preds = %405
br label %473
426: ; preds = %399
%427 = load i32, i32* %6
%428 = load i32, i32* %3
%429 = sdiv i32 %428, 2
%430 = icmp slt i32 %427, %429
br i1 %430, label %431, label %453
431: ; preds = %426
store i32 0, i32* %7
br label %432
432: ; preds = %449, %431
%433 = load i32, i32* %7
%434 = load i32, i32* %4
%435 = icmp slt i32 %433, %434
br i1 %435, label %436, label %452
436: ; preds = %432
%437 = load i32, i32* %7
%438 = icmp eq i32 %437, 0
br i1 %438, label %444, label %439
439: ; preds = %436
%440 = load i32, i32* %7
%441 = load i32, i32* %2
%442 = add nsw i32 %441, 1
%443 = icmp eq i32 %440, %442
br i1 %443, label %444, label %446
444: ; preds = %439, %436
%445 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %448
446: ; preds = %439
%447 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %448
448: ; preds = %446, %444
br label %449
449: ; preds = %448
%450 = load i32, i32* %7
%451 = add nsw i32 %450, 1
store i32 %451, i32* %7
br label %432
452: ; preds = %432
br label %472
453: ; preds = %426
store i32 0, i32* %7
br label %454
454: ; preds = %468, %453
%455 = load i32, i32* %7
%456 = load i32, i32* %4
%457 = icmp slt i32 %455, %456
br i1 %457, label %458, label %471
458: ; preds = %454
%459 = load i32, i32* %7
%460 = load i32, i32* %2
%461 = add nsw i32 %460, 1
%462 = icmp eq i32 %459, %461
br i1 %462, label %463, label %465
463: ; preds = %458
%464 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %467
465: ; preds = %458
%466 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %467
467: ; preds = %465, %463
br label %468
468: ; preds = %467
%469 = load i32, i32* %7
%470 = add nsw i32 %469, 1
store i32 %470, i32* %7
br label %454
471: ; preds = %454
br label %472
472: ; preds = %471, %452
br label %473
473: ; preds = %472, %425
br label %474
474: ; preds = %473, %398
br label %974
475: ; preds = %373
%476 = load i32, i32* %5
%477 = sext i32 %476 to i64
%478 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %477
%479 = load i8, i8* %478
%480 = sext i8 %479 to i32
%481 = icmp eq i32 %480, 53
br i1 %481, label %482, label %583
482: ; preds = %475
%483 = load i32, i32* %6
%484 = icmp eq i32 %483, 0
br i1 %484, label %490, label %485
485: ; preds = %482
%486 = load i32, i32* %6
%487 = load i32, i32* %3
%488 = sub nsw i32 %487, 1
%489 = icmp eq i32 %486, %488
br i1 %489, label %490, label %512
490: ; preds = %485, %482
store i32 0, i32* %7
br label %491
491: ; preds = %508, %490
%492 = load i32, i32* %7
%493 = load i32, i32* %4
%494 = icmp slt i32 %492, %493
br i1 %494, label %495, label %511
495: ; preds = %491
%496 = load i32, i32* %7
%497 = icmp sgt i32 %496, 0
br i1 %497, label %498, label %505
498: ; preds = %495
%499 = load i32, i32* %7
%500 = load i32, i32* %4
%501 = sub nsw i32 %500, 1
%502 = icmp slt i32 %499, %501
br i1 %502, label %503, label %505
503: ; preds = %498
%504 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %507
505: ; preds = %498, %495
%506 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %507
507: ; preds = %505, %503
br label %508
508: ; preds = %507
%509 = load i32, i32* %7
%510 = add nsw i32 %509, 1
store i32 %510, i32* %7
br label %491
511: ; preds = %491
br label %582
512: ; preds = %485
%513 = load i32, i32* %6
%514 = load i32, i32* %3
%515 = sdiv i32 %514, 2
%516 = icmp eq i32 %513, %515
br i1 %516, label %517, label %539
517: ; preds = %512
store i32 0, i32* %7
br label %518
518: ; preds = %535, %517
%519 = load i32, i32* %7
%520 = load i32, i32* %4
%521 = icmp slt i32 %519, %520
br i1 %521, label %522, label %538
522: ; preds = %518
%523 = load i32, i32* %7
%524 = icmp sgt i32 %523, 0
br i1 %524, label %525, label %532
525: ; preds = %522
%526 = load i32, i32* %7
%527 = load i32, i32* %4
%528 = sub nsw i32 %527, 1
%529 = icmp slt i32 %526, %528
br i1 %529, label %530, label %532
530: ; preds = %525
%531 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %534
532: ; preds = %525, %522
%533 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %534
534: ; preds = %532, %530
br label %535
535: ; preds = %534
%536 = load i32, i32* %7
%537 = add nsw i32 %536, 1
store i32 %537, i32* %7
br label %518
538: ; preds = %518
br label %581
539: ; preds = %512
%540 = load i32, i32* %6
%541 = load i32, i32* %3
%542 = sdiv i32 %541, 2
%543 = icmp slt i32 %540, %542
br i1 %543, label %544, label %561
544: ; preds = %539
store i32 0, i32* %7
br label %545
545: ; preds = %557, %544
%546 = load i32, i32* %7
%547 = load i32, i32* %4
%548 = icmp slt i32 %546, %547
br i1 %548, label %549, label %560
549: ; preds = %545
%550 = load i32, i32* %7
%551 = icmp eq i32 %550, 0
br i1 %551, label %552, label %554
552: ; preds = %549
%553 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %556
554: ; preds = %549
%555 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %556
556: ; preds = %554, %552
br label %557
557: ; preds = %556
%558 = load i32, i32* %7
%559 = add nsw i32 %558, 1
store i32 %559, i32* %7
br label %545
560: ; preds = %545
br label %580
561: ; preds = %539
store i32 0, i32* %7
br label %562
562: ; preds = %576, %561
%563 = load i32, i32* %7
%564 = load i32, i32* %4
%565 = icmp slt i32 %563, %564
br i1 %565, label %566, label %579
566: ; preds = %562
%567 = load i32, i32* %7
%568 = load i32, i32* %2
%569 = add nsw i32 %568, 1
%570 = icmp eq i32 %567, %569
br i1 %570, label %571, label %573
571: ; preds = %566
%572 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %575
573: ; preds = %566
%574 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %575
575: ; preds = %573, %571
br label %576
576: ; preds = %575
%577 = load i32, i32* %7
%578 = add nsw i32 %577, 1
store i32 %578, i32* %7
br label %562
579: ; preds = %562
br label %580
580: ; preds = %579, %560
br label %581
581: ; preds = %580, %538
br label %582
582: ; preds = %581, %511
br label %973
583: ; preds = %475
%584 = load i32, i32* %5
%585 = sext i32 %584 to i64
%586 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %585
%587 = load i8, i8* %586
%588 = sext i8 %587 to i32
%589 = icmp eq i32 %588, 54
br i1 %589, label %590, label %694
590: ; preds = %583
%591 = load i32, i32* %6
%592 = icmp eq i32 %591, 0
br i1 %592, label %598, label %593
593: ; preds = %590
%594 = load i32, i32* %6
%595 = load i32, i32* %3
%596 = sub nsw i32 %595, 1
%597 = icmp eq i32 %594, %596
br i1 %597, label %598, label %620
598: ; preds = %593, %590
store i32 0, i32* %7
br label %599
599: ; preds = %616, %598
%600 = load i32, i32* %7
%601 = load i32, i32* %4
%602 = icmp slt i32 %600, %601
br i1 %602, label %603, label %619
603: ; preds = %599
%604 = load i32, i32* %7
%605 = icmp sgt i32 %604, 0
br i1 %605, label %606, label %613
606: ; preds = %603
%607 = load i32, i32* %7
%608 = load i32, i32* %4
%609 = sub nsw i32 %608, 1
%610 = icmp slt i32 %607, %609
br i1 %610, label %611, label %613
611: ; preds = %606
%612 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %615
613: ; preds = %606, %603
%614 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %615
615: ; preds = %613, %611
br label %616
616: ; preds = %615
%617 = load i32, i32* %7
%618 = add nsw i32 %617, 1
store i32 %618, i32* %7
br label %599
619: ; preds = %599
br label %693
620: ; preds = %593
%621 = load i32, i32* %6
%622 = load i32, i32* %3
%623 = sdiv i32 %622, 2
%624 = icmp eq i32 %621, %623
br i1 %624, label %625, label %647
625: ; preds = %620
store i32 0, i32* %7
br label %626
626: ; preds = %643, %625
%627 = load i32, i32* %7
%628 = load i32, i32* %4
%629 = icmp slt i32 %627, %628
br i1 %629, label %630, label %646
630: ; preds = %626
%631 = load i32, i32* %7
%632 = icmp sgt i32 %631, 0
br i1 %632, label %633, label %640
633: ; preds = %630
%634 = load i32, i32* %7
%635 = load i32, i32* %4
%636 = sub nsw i32 %635, 1
%637 = icmp slt i32 %634, %636
br i1 %637, label %638, label %640
638: ; preds = %633
%639 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %642
640: ; preds = %633, %630
%641 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %642
642: ; preds = %640, %638
br label %643
643: ; preds = %642
%644 = load i32, i32* %7
%645 = add nsw i32 %644, 1
store i32 %645, i32* %7
br label %626
646: ; preds = %626
br label %692
647: ; preds = %620
%648 = load i32, i32* %6
%649 = load i32, i32* %3
%650 = sdiv i32 %649, 2
%651 = icmp slt i32 %648, %650
br i1 %651, label %652, label %669
652: ; preds = %647
store i32 0, i32* %7
br label %653
653: ; preds = %665, %652
%654 = load i32, i32* %7
%655 = load i32, i32* %4
%656 = icmp slt i32 %654, %655
br i1 %656, label %657, label %668
657: ; preds = %653
%658 = load i32, i32* %7
%659 = icmp eq i32 %658, 0
br i1 %659, label %660, label %662
660: ; preds = %657
%661 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %664
662: ; preds = %657
%663 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %664
664: ; preds = %662, %660
br label %665
665: ; preds = %664
%666 = load i32, i32* %7
%667 = add nsw i32 %666, 1
store i32 %667, i32* %7
br label %653
668: ; preds = %653
br label %691
669: ; preds = %647
store i32 0, i32* %7
br label %670
670: ; preds = %687, %669
%671 = load i32, i32* %7
%672 = load i32, i32* %4
%673 = icmp slt i32 %671, %672
br i1 %673, label %674, label %690
674: ; preds = %670
%675 = load i32, i32* %7
%676 = icmp eq i32 %675, 0
br i1 %676, label %682, label %677
677: ; preds = %674
%678 = load i32, i32* %7
%679 = load i32, i32* %2
%680 = add nsw i32 %679, 1
%681 = icmp eq i32 %678, %680
br i1 %681, label %682, label %684
682: ; preds = %677, %674
%683 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %686
684: ; preds = %677
%685 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %686
686: ; preds = %684, %682
br label %687
687: ; preds = %686
%688 = load i32, i32* %7
%689 = add nsw i32 %688, 1
store i32 %689, i32* %7
br label %670
690: ; preds = %670
br label %691
691: ; preds = %690, %668
br label %692
692: ; preds = %691, %646
br label %693
693: ; preds = %692, %619
br label %972
694: ; preds = %583
%695 = load i32, i32* %5
%696 = sext i32 %695 to i64
%697 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %696
%698 = load i8, i8* %697
%699 = sext i8 %698 to i32
%700 = icmp eq i32 %699, 55
br i1 %700, label %701, label %768
701: ; preds = %694
%702 = load i32, i32* %6
%703 = icmp eq i32 %702, 0
br i1 %703, label %704, label %726
704: ; preds = %701
store i32 0, i32* %7
br label %705
705: ; preds = %722, %704
%706 = load i32, i32* %7
%707 = load i32, i32* %4
%708 = icmp slt i32 %706, %707
br i1 %708, label %709, label %725
709: ; preds = %705
%710 = load i32, i32* %7
%711 = icmp sgt i32 %710, 0
br i1 %711, label %712, label %719
712: ; preds = %709
%713 = load i32, i32* %7
%714 = load i32, i32* %4
%715 = sub nsw i32 %714, 1
%716 = icmp slt i32 %713, %715
br i1 %716, label %717, label %719
717: ; preds = %712
%718 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %721
719: ; preds = %712, %709
%720 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %721
721: ; preds = %719, %717
br label %722
722: ; preds = %721
%723 = load i32, i32* %7
%724 = add nsw i32 %723, 1
store i32 %724, i32* %7
br label %705
725: ; preds = %705
br label %767
726: ; preds = %701
%727 = load i32, i32* %6
%728 = load i32, i32* %3
%729 = sdiv i32 %728, 2
%730 = icmp eq i32 %727, %729
br i1 %730, label %731, label %742
731: ; preds = %726
store i32 0, i32* %7
br label %732
732: ; preds = %738, %731
%733 = load i32, i32* %7
%734 = load i32, i32* %4
%735 = icmp slt i32 %733, %734
br i1 %735, label %736, label %741
736: ; preds = %732
%737 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %738
738: ; preds = %736
%739 = load i32, i32* %7
%740 = add nsw i32 %739, 1
store i32 %740, i32* %7
br label %732
741: ; preds = %732
br label %766
742: ; preds = %726
store i32 0, i32* %7
br label %743
743: ; preds = %762, %742
%744 = load i32, i32* %7
%745 = load i32, i32* %4
%746 = icmp slt i32 %744, %745
br i1 %746, label %747, label %765
747: ; preds = %743
%748 = load i32, i32* %7
%749 = load i32, i32* %2
%750 = add nsw i32 %749, 1
%751 = icmp eq i32 %748, %750
br i1 %751, label %752, label %759
752: ; preds = %747
%753 = load i32, i32* %6
%754 = load i32, i32* %3
%755 = sub nsw i32 %754, 1
%756 = icmp slt i32 %753, %755
br i1 %756, label %757, label %759
757: ; preds = %752
%758 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %761
759: ; preds = %752, %747
%760 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %761
761: ; preds = %759, %757
br label %762
762: ; preds = %761
%763 = load i32, i32* %7
%764 = add nsw i32 %763, 1
store i32 %764, i32* %7
br label %743
765: ; preds = %743
br label %766
766: ; preds = %765, %741
br label %767
767: ; preds = %766, %725
br label %971
768: ; preds = %694
%769 = load i32, i32* %5
%770 = sext i32 %769 to i64
%771 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %770
%772 = load i8, i8* %771
%773 = sext i8 %772 to i32
%774 = icmp eq i32 %773, 56
br i1 %774, label %775, label %856
775: ; preds = %768
%776 = load i32, i32* %6
%777 = icmp eq i32 %776, 0
br i1 %777, label %783, label %778
778: ; preds = %775
%779 = load i32, i32* %6
%780 = load i32, i32* %3
%781 = sub nsw i32 %780, 1
%782 = icmp eq i32 %779, %781
br i1 %782, label %783, label %805
783: ; preds = %778, %775
store i32 0, i32* %7
br label %784
784: ; preds = %801, %783
%785 = load i32, i32* %7
%786 = load i32, i32* %4
%787 = icmp slt i32 %785, %786
br i1 %787, label %788, label %804
788: ; preds = %784
%789 = load i32, i32* %7
%790 = icmp sgt i32 %789, 0
br i1 %790, label %791, label %798
791: ; preds = %788
%792 = load i32, i32* %7
%793 = load i32, i32* %4
%794 = sub nsw i32 %793, 1
%795 = icmp slt i32 %792, %794
br i1 %795, label %796, label %798
796: ; preds = %791
%797 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %800
798: ; preds = %791, %788
%799 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %800
800: ; preds = %798, %796
br label %801
801: ; preds = %800
%802 = load i32, i32* %7
%803 = add nsw i32 %802, 1
store i32 %803, i32* %7
br label %784
804: ; preds = %784
br label %855
805: ; preds = %778
%806 = load i32, i32* %6
%807 = load i32, i32* %3
%808 = sdiv i32 %807, 2
%809 = icmp eq i32 %806, %808
br i1 %809, label %810, label %832
810: ; preds = %805
store i32 0, i32* %7
br label %811
811: ; preds = %828, %810
%812 = load i32, i32* %7
%813 = load i32, i32* %4
%814 = icmp slt i32 %812, %813
br i1 %814, label %815, label %831
815: ; preds = %811
%816 = load i32, i32* %7
%817 = icmp sgt i32 %816, 0
br i1 %817, label %818, label %825
818: ; preds = %815
%819 = load i32, i32* %7
%820 = load i32, i32* %4
%821 = sub nsw i32 %820, 1
%822 = icmp slt i32 %819, %821
br i1 %822, label %823, label %825
823: ; preds = %818
%824 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %827
825: ; preds = %818, %815
%826 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %827
827: ; preds = %825, %823
br label %828
828: ; preds = %827
%829 = load i32, i32* %7
%830 = add nsw i32 %829, 1
store i32 %830, i32* %7
br label %811
831: ; preds = %811
br label %854
832: ; preds = %805
store i32 0, i32* %7
br label %833
833: ; preds = %850, %832
%834 = load i32, i32* %7
%835 = load i32, i32* %4
%836 = icmp slt i32 %834, %835
br i1 %836, label %837, label %853
837: ; preds = %833
%838 = load i32, i32* %7
%839 = icmp eq i32 %838, 0
br i1 %839, label %845, label %840
840: ; preds = %837
%841 = load i32, i32* %7
%842 = load i32, i32* %2
%843 = add nsw i32 %842, 1
%844 = icmp eq i32 %841, %843
br i1 %844, label %845, label %847
845: ; preds = %840, %837
%846 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %849
847: ; preds = %840
%848 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %849
849: ; preds = %847, %845
br label %850
850: ; preds = %849
%851 = load i32, i32* %7
%852 = add nsw i32 %851, 1
store i32 %852, i32* %7
br label %833
853: ; preds = %833
br label %854
854: ; preds = %853, %831
br label %855
855: ; preds = %854, %804
br label %970
856: ; preds = %768
%857 = load i32, i32* %5
%858 = sext i32 %857 to i64
%859 = getelementptr inbounds [1000 x i8], [1000 x i8]* %9, i64 0, i64 %858
%860 = load i8, i8* %859
%861 = sext i8 %860 to i32
%862 = icmp eq i32 %861, 57
br i1 %862, label %863, label %969
863: ; preds = %856
%864 = load i32, i32* %6
%865 = icmp eq i32 %864, 0
br i1 %865, label %871, label %866
866: ; preds = %863
%867 = load i32, i32* %6
%868 = load i32, i32* %3
%869 = sub nsw i32 %868, 1
%870 = icmp eq i32 %867, %869
br i1 %870, label %871, label %893
871: ; preds = %866, %863
store i32 0, i32* %7
br label %872
872: ; preds = %889, %871
%873 = load i32, i32* %7
%874 = load i32, i32* %4
%875 = icmp slt i32 %873, %874
br i1 %875, label %876, label %892
876: ; preds = %872
%877 = load i32, i32* %7
%878 = icmp sgt i32 %877, 0
br i1 %878, label %879, label %886
879: ; preds = %876
%880 = load i32, i32* %7
%881 = load i32, i32* %4
%882 = sub nsw i32 %881, 1
%883 = icmp slt i32 %880, %882
br i1 %883, label %884, label %886
884: ; preds = %879
%885 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %888
886: ; preds = %879, %876
%887 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %888
888: ; preds = %886, %884
br label %889
889: ; preds = %888
%890 = load i32, i32* %7
%891 = add nsw i32 %890, 1
store i32 %891, i32* %7
br label %872
892: ; preds = %872
br label %968
893: ; preds = %866
%894 = load i32, i32* %6
%895 = load i32, i32* %3
%896 = sdiv i32 %895, 2
%897 = icmp eq i32 %894, %896
br i1 %897, label %898, label %920
898: ; preds = %893
store i32 0, i32* %7
br label %899
899: ; preds = %916, %898
%900 = load i32, i32* %7
%901 = load i32, i32* %4
%902 = icmp slt i32 %900, %901
br i1 %902, label %903, label %919
903: ; preds = %899
%904 = load i32, i32* %7
%905 = icmp sgt i32 %904, 0
br i1 %905, label %906, label %913
906: ; preds = %903
%907 = load i32, i32* %7
%908 = load i32, i32* %4
%909 = sub nsw i32 %908, 1
%910 = icmp slt i32 %907, %909
br i1 %910, label %911, label %913
911: ; preds = %906
%912 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
br label %915
913: ; preds = %906, %903
%914 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %915
915: ; preds = %913, %911
br label %916
916: ; preds = %915
%917 = load i32, i32* %7
%918 = add nsw i32 %917, 1
store i32 %918, i32* %7
br label %899
919: ; preds = %899
br label %967
920: ; preds = %893
%921 = load i32, i32* %6
%922 = load i32, i32* %3
%923 = sdiv i32 %922, 2
%924 = icmp slt i32 %921, %923
br i1 %924, label %925, label %947
925: ; preds = %920
store i32 0, i32* %7
br label %926
926: ; preds = %943, %925
%927 = load i32, i32* %7
%928 = load i32, i32* %4
%929 = icmp slt i32 %927, %928
br i1 %929, label %930, label %946
930: ; preds = %926
%931 = load i32, i32* %7
%932 = icmp eq i32 %931, 0
br i1 %932, label %938, label %933
933: ; preds = %930
%934 = load i32, i32* %7
%935 = load i32, i32* %2
%936 = add nsw i32 %935, 1
%937 = icmp eq i32 %934, %936
br i1 %937, label %938, label %940
938: ; preds = %933, %930
%939 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %942
940: ; preds = %933
%941 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %942
942: ; preds = %940, %938
br label %943
943: ; preds = %942
%944 = load i32, i32* %7
%945 = add nsw i32 %944, 1
store i32 %945, i32* %7
br label %926
946: ; preds = %926
br label %966
947: ; preds = %920
store i32 0, i32* %7
br label %948
948: ; preds = %962, %947
%949 = load i32, i32* %7
%950 = load i32, i32* %4
%951 = icmp slt i32 %949, %950
br i1 %951, label %952, label %965
952: ; preds = %948
%953 = load i32, i32* %7
%954 = load i32, i32* %2
%955 = add nsw i32 %954, 1
%956 = icmp eq i32 %953, %955
br i1 %956, label %957, label %959
957: ; preds = %952
%958 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
br label %961
959: ; preds = %952
%960 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
br label %961
961: ; preds = %959, %957
br label %962
962: ; preds = %961
%963 = load i32, i32* %7
%964 = add nsw i32 %963, 1
store i32 %964, i32* %7
br label %948
965: ; preds = %948
br label %966
966: ; preds = %965, %946
br label %967
967: ; preds = %966, %919
br label %968
968: ; preds = %967, %892
br label %969
969: ; preds = %968, %856
br label %970
970: ; preds = %969, %855
br label %971
971: ; preds = %970, %767
br label %972
972: ; preds = %971, %693
br label %973
973: ; preds = %972, %582
br label %974
974: ; preds = %973, %474
br label %975
975: ; preds = %974, %372
br label %976
976: ; preds = %975, %287
br label %977
977: ; preds = %976, %179
br label %978
978: ; preds = %977, %116
br label %979
979: ; preds = %978
%980 = load i32, i32* %5
%981 = add nsw i32 %980, 1
store i32 %981, i32* %5
br label %31
982: ; preds = %31
%983 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
br label %984
984: ; preds = %982
%985 = load i32, i32* %6
%986 = add nsw i32 %985, 1
store i32 %986, i32* %6
br label %26
987: ; preds = %26
%988 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
br label %10
989: ; preds = %16, %10
ret i32 0
}

LLVM IR (-O2):
@.str = [6 x i8] c"%d %s\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [1000 x i8]
%3 = bitcast i32* %1 to i8*
%4 = getelementptr inbounds [1000 x i8], [1000 x i8]* %2, i64 0, i64 0
%5 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32* %1, [1000 x i8]* %2)
%6 = icmp ne i32 %5, 2
%7 = load i32, i32* %1
%8 = icmp eq i32 %7, 0
%9 = select i1 %6, i1 true, i1 %8
br i1 %9, label %388, label %10
10: ; preds = %0, %381
%11 = phi i32 [ %385, %381 ], [ %7, %0 ]
%12 = shl nsw i32 %11, 1
%13 = add i32 %12, 3
%14 = call i64 @strlen(i8* %4)
%15 = icmp sgt i32 %11, -2
br i1 %15, label %16, label %381
16: ; preds = %10
%17 = trunc i64 %14 to i32
%18 = add i32 %11, 2
%19 = icmp sgt i32 %17, 0
%20 = add nsw i32 %12, 2
%21 = sdiv i32 %13, 2
%22 = call i32 @llvm.smax.i32(i32 %18, i32 1)
%23 = call i32 @llvm.smax.i32(i32 %13, i32 1)
%24 = and i64 %14, 4294967295
%25 = icmp ugt i32 %11, 2147483645
%26 = icmp ugt i32 %11, 2147483645
%27 = icmp ugt i32 %11, 2147483645
%28 = icmp ugt i32 %11, 2147483645
%29 = icmp ugt i32 %11, 2147483645
%30 = icmp ugt i32 %11, 2147483645
%31 = icmp ugt i32 %11, 2147483645
%32 = icmp ugt i32 %11, 2147483645
br label %33
33: ; preds = %16, %377
%34 = phi i32 [ 0, %16 ], [ %379, %377 ]
br i1 %19, label %35, label %377
35: ; preds = %33
%36 = icmp eq i32 %34, 0
%37 = icmp eq i32 %34, %20
%38 = select i1 %36, i1 true, i1 %37
%39 = icmp eq i32 %34, %21
%40 = icmp slt i32 %34, %21
%41 = icmp slt i32 %34, %20
br label %42
42: ; preds = %35, %374
%43 = phi i64 [ 0, %35 ], [ %375, %374 ]
%44 = icmp eq i64 %43, 0
br i1 %44, label %47, label %45
45: ; preds = %42
%46 = call i32 @putchar(i32 32)
br label %47
47: ; preds = %45, %42
%48 = getelementptr inbounds [1000 x i8], [1000 x i8]* %2, i64 0, i64 %43
%49 = load i8, i8* %48
switch i8 %49, label %374 [
i8 48, label %50
i8 49, label %77
i8 50, label %98
i8 51, label %135
i8 52, label %164
i8 53, label %201
i8 54, label %238
i8 55, label %276
i8 56, label %302
i8 57, label %333
]
50: ; preds = %47
br i1 %38, label %51, label %60
51: ; preds = %50, %51
%52 = phi i32 [ %58, %51 ], [ 0, %50 ]
%53 = icmp eq i32 %52, 0
%54 = icmp sgt i32 %52, %11
%55 = select i1 %53, i1 true, i1 %54
%56 = select i1 %55, i32 32, i32 45
%57 = call i32 @putchar(i32 %56)
%58 = add nuw nsw i32 %52, 1
%59 = icmp eq i32 %58, %22
br i1 %59, label %374, label %51
60: ; preds = %50
br i1 %39, label %63, label %61
61: ; preds = %60
%62 = call i32 @putchar(i32 124)
br i1 %32, label %374, label %68
63: ; preds = %60, %63
%64 = phi i32 [ %66, %63 ], [ 0, %60 ]
%65 = call i32 @putchar(i32 32)
%66 = add nuw nsw i32 %64, 1
%67 = icmp eq i32 %66, %22
br i1 %67, label %374, label %63
68: ; preds = %61, %68
%69 = phi i32 [ %75, %68 ], [ 1, %61 ]
%70 = load i32, i32* %1
%71 = add nsw i32 %70, 1
%72 = icmp eq i32 %69, %71
%73 = select i1 %72, i32 124, i32 32
%74 = call i32 @putchar(i32 %73)
%75 = add nuw nsw i32 %69, 1
%76 = icmp eq i32 %75, %22
br i1 %76, label %374, label %68
77: ; preds = %47
br i1 %38, label %78, label %83
78: ; preds = %77, %78
%79 = phi i32 [ %81, %78 ], [ 0, %77 ]
%80 = call i32 @putchar(i32 32)
%81 = add nuw nsw i32 %79, 1
%82 = icmp eq i32 %81, %22
br i1 %82, label %374, label %78
83: ; preds = %77
br i1 %39, label %84, label %89
84: ; preds = %83, %84
%85 = phi i32 [ %87, %84 ], [ 0, %83 ]
%86 = call i32 @putchar(i32 32)
%87 = add nuw nsw i32 %85, 1
%88 = icmp eq i32 %87, %22
br i1 %88, label %374, label %84
89: ; preds = %83, %89
%90 = phi i32 [ %96, %89 ], [ 0, %83 ]
%91 = load i32, i32* %1
%92 = add nsw i32 %91, 1
%93 = icmp eq i32 %90, %92
%94 = select i1 %93, i32 124, i32 32
%95 = call i32 @putchar(i32 %94)
%96 = add nuw nsw i32 %90, 1
%97 = icmp eq i32 %96, %22
br i1 %97, label %374, label %89
98: ; preds = %47
br i1 %38, label %99, label %108
99: ; preds = %98, %99
%100 = phi i32 [ %106, %99 ], [ 0, %98 ]
%101 = icmp eq i32 %100, 0
%102 = icmp sgt i32 %100, %11
%103 = select i1 %101, i1 true, i1 %102
%104 = select i1 %103, i32 32, i32 45
%105 = call i32 @putchar(i32 %104)
%106 = add nuw nsw i32 %100, 1
%107 = icmp eq i32 %106, %22
br i1 %107, label %374, label %99
108: ; preds = %98
br i1 %39, label %109, label %118
109: ; preds = %108, %109
%110 = phi i32 [ %116, %109 ], [ 0, %108 ]
%111 = icmp eq i32 %110, 0
%112 = icmp sgt i32 %110, %11
%113 = select i1 %111, i1 true, i1 %112
%114 = select i1 %113, i32 32, i32 45
%115 = call i32 @putchar(i32 %114)
%116 = add nuw nsw i32 %110, 1
%117 = icmp eq i32 %116, %22
br i1 %117, label %374, label %109
118: ; preds = %108
br i1 %40, label %121, label %119
119: ; preds = %118
%120 = call i32 @putchar(i32 124)
br i1 %31, label %374, label %130
121: ; preds = %118, %121
%122 = phi i32 [ %128, %121 ], [ 0, %118 ]
%123 = load i32, i32* %1
%124 = add nsw i32 %123, 1
%125 = icmp eq i32 %122, %124
%126 = select i1 %125, i32 124, i32 32
%127 = call i32 @putchar(i32 %126)
%128 = add nuw nsw i32 %122, 1
%129 = icmp eq i32 %128, %22
br i1 %129, label %374, label %121
130: ; preds = %119, %130
%131 = phi i32 [ %133, %130 ], [ 1, %119 ]
%132 = call i32 @putchar(i32 32)
%133 = add nuw nsw i32 %131, 1
%134 = icmp eq i32 %133, %22
br i1 %134, label %374, label %130
135: ; preds = %47
br i1 %38, label %136, label %145
136: ; preds = %135, %136
%137 = phi i32 [ %143, %136 ], [ 0, %135 ]
%138 = icmp eq i32 %137, 0
%139 = icmp sgt i32 %137, %11
%140 = select i1 %138, i1 true, i1 %139
%141 = select i1 %140, i32 32, i32 45
%142 = call i32 @putchar(i32 %141)
%143 = add nuw nsw i32 %137, 1
%144 = icmp eq i32 %143, %22
br i1 %144, label %374, label %136
145: ; preds = %135
br i1 %39, label %146, label %155
146: ; preds = %145, %146
%147 = phi i32 [ %153, %146 ], [ 0, %145 ]
%148 = icmp eq i32 %147, 0
%149 = icmp sgt i32 %147, %11
%150 = select i1 %148, i1 true, i1 %149
%151 = select i1 %150, i32 32, i32 45
%152 = call i32 @putchar(i32 %151)
%153 = add nuw nsw i32 %147, 1
%154 = icmp eq i32 %153, %22
br i1 %154, label %374, label %146
155: ; preds = %145, %155
%156 = phi i32 [ %162, %155 ], [ 0, %145 ]
%157 = load i32, i32* %1
%158 = add nsw i32 %157, 1
%159 = icmp eq i32 %156, %158
%160 = select i1 %159, i32 124, i32 32
%161 = call i32 @putchar(i32 %160)
%162 = add nuw nsw i32 %156, 1
%163 = icmp eq i32 %162, %22
br i1 %163, label %374, label %155
164: ; preds = %47
br i1 %38, label %165, label %170
165: ; preds = %164, %165
%166 = phi i32 [ %168, %165 ], [ 0, %164 ]
%167 = call i32 @putchar(i32 32)
%168 = add nuw nsw i32 %166, 1
%169 = icmp eq i32 %168, %22
br i1 %169, label %374, label %165
170: ; preds = %164
br i1 %39, label %171, label %180
171: ; preds = %170, %171
%172 = phi i32 [ %178, %171 ], [ 0, %170 ]
%173 = icmp eq i32 %172, 0
%174 = icmp sgt i32 %172, %11
%175 = select i1 %173, i1 true, i1 %174
%176 = select i1 %175, i32 32, i32 45
%177 = call i32 @putchar(i32 %176)
%178 = add nuw nsw i32 %172, 1
%179 = icmp eq i32 %178, %22
br i1 %179, label %374, label %171
180: ; preds = %170
br i1 %40, label %181, label %192
181: ; preds = %180
%182 = call i32 @putchar(i32 124)
br i1 %30, label %374, label %183
183: ; preds = %181, %183
%184 = phi i32 [ %190, %183 ], [ 1, %181 ]
%185 = load i32, i32* %1
%186 = add nsw i32 %185, 1
%187 = icmp eq i32 %184, %186
%188 = select i1 %187, i32 124, i32 32
%189 = call i32 @putchar(i32 %188)
%190 = add nuw nsw i32 %184, 1
%191 = icmp eq i32 %190, %22
br i1 %191, label %374, label %183
192: ; preds = %180, %192
%193 = phi i32 [ %199, %192 ], [ 0, %180 ]
%194 = load i32, i32* %1
%195 = add nsw i32 %194, 1
%196 = icmp eq i32 %193, %195
%197 = select i1 %196, i32 124, i32 32
%198 = call i32 @putchar(i32 %197)
%199 = add nuw nsw i32 %193, 1
%200 = icmp eq i32 %199, %22
br i1 %200, label %374, label %192
201: ; preds = %47
br i1 %38, label %202, label %211
202: ; preds = %201, %202
%203 = phi i32 [ %209, %202 ], [ 0, %201 ]
%204 = icmp eq i32 %203, 0
%205 = icmp sgt i32 %203, %11
%206 = select i1 %204, i1 true, i1 %205
%207 = select i1 %206, i32 32, i32 45
%208 = call i32 @putchar(i32 %207)
%209 = add nuw nsw i32 %203, 1
%210 = icmp eq i32 %209, %22
br i1 %210, label %374, label %202
211: ; preds = %201
br i1 %39, label %212, label %221
212: ; preds = %211, %212
%213 = phi i32 [ %219, %212 ], [ 0, %211 ]
%214 = icmp eq i32 %213, 0
%215 = icmp sgt i32 %213, %11
%216 = select i1 %214, i1 true, i1 %215
%217 = select i1 %216, i32 32, i32 45
%218 = call i32 @putchar(i32 %217)
%219 = add nuw nsw i32 %213, 1
%220 = icmp eq i32 %219, %22
br i1 %220, label %374, label %212
221: ; preds = %211
br i1 %40, label %222, label %229
222: ; preds = %221
%223 = call i32 @putchar(i32 124)
br i1 %29, label %374, label %224
224: ; preds = %222, %224
%225 = phi i32 [ %227, %224 ], [ 1, %222 ]
%226 = call i32 @putchar(i32 32)
%227 = add nuw nsw i32 %225, 1
%228 = icmp eq i32 %227, %22
br i1 %228, label %374, label %224
229: ; preds = %221, %229
%230 = phi i32 [ %236, %229 ], [ 0, %221 ]
%231 = load i32, i32* %1
%232 = add nsw i32 %231, 1
%233 = icmp eq i32 %230, %232
%234 = select i1 %233, i32 124, i32 32
%235 = call i32 @putchar(i32 %234)
%236 = add nuw nsw i32 %230, 1
%237 = icmp eq i32 %236, %22
br i1 %237, label %374, label %229
238: ; preds = %47
br i1 %38, label %239, label %248
239: ; preds = %238, %239
%240 = phi i32 [ %246, %239 ], [ 0, %238 ]
%241 = icmp eq i32 %240, 0
%242 = icmp sgt i32 %240, %11
%243 = select i1 %241, i1 true, i1 %242
%244 = select i1 %243, i32 32, i32 45
%245 = call i32 @putchar(i32 %244)
%246 = add nuw nsw i32 %240, 1
%247 = icmp eq i32 %246, %22
br i1 %247, label %374, label %239
248: ; preds = %238
br i1 %39, label %249, label %258
249: ; preds = %248, %249
%250 = phi i32 [ %256, %249 ], [ 0, %248 ]
%251 = icmp eq i32 %250, 0
%252 = icmp sgt i32 %250, %11
%253 = select i1 %251, i1 true, i1 %252
%254 = select i1 %253, i32 32, i32 45
%255 = call i32 @putchar(i32 %254)
%256 = add nuw nsw i32 %250, 1
%257 = icmp eq i32 %256, %22
br i1 %257, label %374, label %249
258: ; preds = %248
%259 = call i32 @putchar(i32 124)
br i1 %40, label %261, label %260
260: ; preds = %258
br i1 %27, label %374, label %267
261: ; preds = %258
br i1 %28, label %374, label %262
262: ; preds = %261, %262
%263 = phi i32 [ %265, %262 ], [ 1, %261 ]
%264 = call i32 @putchar(i32 32)
%265 = add nuw nsw i32 %263, 1
%266 = icmp eq i32 %265, %22
br i1 %266, label %374, label %262
267: ; preds = %260, %267
%268 = phi i32 [ %274, %267 ], [ 1, %260 ]
%269 = load i32, i32* %1
%270 = add nsw i32 %269, 1
%271 = icmp eq i32 %268, %270
%272 = select i1 %271, i32 124, i32 32
%273 = call i32 @putchar(i32 %272)
%274 = add nuw nsw i32 %268, 1
%275 = icmp eq i32 %274, %22
br i1 %275, label %374, label %267
276: ; preds = %47
br i1 %36, label %277, label %286
277: ; preds = %276, %277
%278 = phi i32 [ %284, %277 ], [ 0, %276 ]
%279 = icmp eq i32 %278, 0
%280 = icmp sgt i32 %278, %11
%281 = select i1 %279, i1 true, i1 %280
%282 = select i1 %281, i32 32, i32 45
%283 = call i32 @putchar(i32 %282)
%284 = add nuw nsw i32 %278, 1
%285 = icmp eq i32 %284, %22
br i1 %285, label %374, label %277
286: ; preds = %276
br i1 %39, label %287, label %292
287: ; preds = %286, %287
%288 = phi i32 [ %290, %287 ], [ 0, %286 ]
%289 = call i32 @putchar(i32 32)
%290 = add nuw nsw i32 %288, 1
%291 = icmp eq i32 %290, %22
br i1 %291, label %374, label %287
292: ; preds = %286, %292
%293 = phi i32 [ %300, %292 ], [ 0, %286 ]
%294 = load i32, i32* %1
%295 = add nsw i32 %294, 1
%296 = icmp eq i32 %293, %295
%297 = select i1 %296, i1 %41, i1 false
%298 = select i1 %297, i32 124, i32 32
%299 = call i32 @putchar(i32 %298)
%300 = add nuw nsw i32 %293, 1
%301 = icmp eq i32 %300, %22
br i1 %301, label %374, label %292
302: ; preds = %47
br i1 %38, label %303, label %312
303: ; preds = %302, %303
%304 = phi i32 [ %310, %303 ], [ 0, %302 ]
%305 = icmp eq i32 %304, 0
%306 = icmp sgt i32 %304, %11
%307 = select i1 %305, i1 true, i1 %306
%308 = select i1 %307, i32 32, i32 45
%309 = call i32 @putchar(i32 %308)
%310 = add nuw nsw i32 %304, 1
%311 = icmp eq i32 %310, %22
br i1 %311, label %374, label %303
312: ; preds = %302
br i1 %39, label %315, label %313
313: ; preds = %312
%314 = call i32 @putchar(i32 124)
br i1 %26, label %374, label %324
315: ; preds = %312, %315
%316 = phi i32 [ %322, %315 ], [ 0, %312 ]
%317 = icmp eq i32 %316, 0
%318 = icmp sgt i32 %316, %11
%319 = select i1 %317, i1 true, i1 %318
%320 = select i1 %319, i32 32, i32 45
%321 = call i32 @putchar(i32 %320)
%322 = add nuw nsw i32 %316, 1
%323 = icmp eq i32 %322, %22
br i1 %323, label %374, label %315
324: ; preds = %313, %324
%325 = phi i32 [ %331, %324 ], [ 1, %313 ]
%326 = load i32, i32* %1
%327 = add nsw i32 %326, 1
%328 = icmp eq i32 %325, %327
%329 = select i1 %328, i32 124, i32 32
%330 = call i32 @putchar(i32 %329)
%331 = add nuw nsw i32 %325, 1
%332 = icmp eq i32 %331, %22
br i1 %332, label %374, label %324
333: ; preds = %47
br i1 %38, label %334, label %343
334: ; preds = %333, %334
%335 = phi i32 [ %341, %334 ], [ 0, %333 ]
%336 = icmp eq i32 %335, 0
%337 = icmp sgt i32 %335, %11
%338 = select i1 %336, i1 true, i1 %337
%339 = select i1 %338, i32 32, i32 45
%340 = call i32 @putchar(i32 %339)
%341 = add nuw nsw i32 %335, 1
%342 = icmp eq i32 %341, %22
br i1 %342, label %374, label %334
343: ; preds = %333
br i1 %39, label %344, label %353
344: ; preds = %343, %344
%345 = phi i32 [ %351, %344 ], [ 0, %343 ]
%346 = icmp eq i32 %345, 0
%347 = icmp sgt i32 %345, %11
%348 = select i1 %346, i1 true, i1 %347
%349 = select i1 %348, i32 32, i32 45
%350 = call i32 @putchar(i32 %349)
%351 = add nuw nsw i32 %345, 1
%352 = icmp eq i32 %351, %22
br i1 %352, label %374, label %344
353: ; preds = %343
br i1 %40, label %354, label %365
354: ; preds = %353
%355 = call i32 @putchar(i32 124)
br i1 %25, label %374, label %356
356: ; preds = %354, %356
%357 = phi i32 [ %363, %356 ], [ 1, %354 ]
%358 = load i32, i32* %1
%359 = add nsw i32 %358, 1
%360 = icmp eq i32 %357, %359
%361 = select i1 %360, i32 124, i32 32
%362 = call i32 @putchar(i32 %361)
%363 = add nuw nsw i32 %357, 1
%364 = icmp eq i32 %363, %22
br i1 %364, label %374, label %356
365: ; preds = %353, %365
%366 = phi i32 [ %372, %365 ], [ 0, %353 ]
%367 = load i32, i32* %1
%368 = add nsw i32 %367, 1
%369 = icmp eq i32 %366, %368
%370 = select i1 %369, i32 124, i32 32
%371 = call i32 @putchar(i32 %370)
%372 = add nuw nsw i32 %366, 1
%373 = icmp eq i32 %372, %22
br i1 %373, label %374, label %365
374: ; preds = %365, %356, %344, %334, %324, %315, %303, %292, %287, %277, %267, %262, %249, %239, %229, %224, %212, %202, %192, %183, %171, %165, %155, %146, %136, %130, %121, %109, %99, %89, %84, %78, %68, %63, %51, %354, %313, %260, %261, %222, %181, %119, %61, %47
%375 = add nuw nsw i64 %43, 1
%376 = icmp eq i64 %375, %24
br i1 %376, label %377, label %42
377: ; preds = %374, %33
%378 = call i32 @putchar(i32 10)
%379 = add nuw nsw i32 %34, 1
%380 = icmp eq i32 %379, %23
br i1 %380, label %381, label %33
381: ; preds = %377, %10
%382 = call i32 @putchar(i32 10)
%383 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32* %1, [1000 x i8]* %2)
%384 = icmp ne i32 %383, 2
%385 = load i32, i32* %1
%386 = icmp eq i32 %385, 0
%387 = select i1 %384, i1 true, i1 %386
br i1 %387, label %388, label %10
388: ; preds = %381, %0
ret i32 0
}