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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ scanf(char *, char *);
int strlen(char *);
int main() {
  char arr[21];
  int elem = 1, count, sum, point = 0, tmp;
  scanf("%s", arr);
  if (arr[0] != '9')
    elem = 0;
  if (arr[1] != '7')
    elem = 0;
  if (arr[2] != '8' && arr[2] != '9')
    elem = 0;
  if (strlen(arr) != 17)
    elem = 0;
  for (count = 0, sum = 0; count < 17; count++) {
    if (arr[count] >= '0' && arr[count] <= '9')
      sum++;
  }
  if (sum != 13)
    elem = 0;
  for (count = 0, sum = 0; count < 15; count++) {
    if (arr[count] >= '0' && arr[count] <= '9') {
      if (point % 2 == 0) {
        sum = sum + (arr[count] - '0');
        point++;
      } else {
        sum = sum + (arr[count] - '0') * (3);
        point++;
      }
    }
  }
  tmp = arr[16] - '0';
  sum = 10 - (sum % 10);
  if (sum != tmp)
    elem = 0;
  if (elem == 0) {
    printf("0\n");
    return 0;
  }
  printf("1\n");
  for (count = 0; count < 17; count++) {
    if (arr[count] == '9') {
      if (arr[count + 1] == '3') {
        if (arr[count + 2] == '3') {
          if (arr[count + 3] == '3') {
            if (arr[count + 4] == '4') {
              if (arr[count + 5] == '6') {
                if (arr[count - 1] == '-') {
                  if (arr[count + 6] == '-') {
                    printf("Bluebridge\n");
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  for (count = 0; count < 17; count++) {
    if (arr[count] == '5') {
      if (arr[count + 1] == '5') {
        if (arr[count + 2] == '5') {
          if (arr[count + 3] == '8') {
            if (arr[count + 4] == '3') {
              if (arr[count - 1] == '-') {
                if (arr[count + 5] == '-') {
                  printf("Alyson Books\n");
                }
              }
            }
          }
        }
      }
    }
  }
  for (count = 0; count < 17; count++) {
    if (arr[count] == '4') {
      if (arr[count + 1] == '2') {
        if (arr[count + 2] == '1') {
          if (arr[count + 3] == '0') {
            if (arr[count - 1] == '-') {
              if (arr[count + 4] == '-') {
                printf("FUNimation Productions, Ltd.\n");
              }
            }
          }
        }
      }
    }
  }
  for (count = 0; count < 17; count++) {
    if (arr[count] == '0') {
      if (arr[count + 1] == '1') {
        if (arr[count + 2] == '-') {
          if (arr[count - 1] == '-') {
            printf("Pyramid Books\n");
          }
        }
      }
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x1,-0x24(%rbp)
movl   $0x0,-0x30(%rbp)
lea    -0x20(%rbp),%rsi
lea    0xea8(%rip),%rdi
call   1050 <scanf@plt>
movsbl -0x20(%rbp),%eax
cmp    $0x39,%eax
je     1171 <main+0x41>
movl   $0x0,-0x24(%rbp)
movsbl -0x1f(%rbp),%eax
cmp    $0x37,%eax
je     1185 <main+0x55>
movl   $0x0,-0x24(%rbp)
movsbl -0x1e(%rbp),%eax
cmp    $0x38,%eax
je     11a6 <main+0x76>
movsbl -0x1e(%rbp),%eax
cmp    $0x39,%eax
je     11a6 <main+0x76>
movl   $0x0,-0x24(%rbp)
lea    -0x20(%rbp),%rdi
call   1030 <strlen@plt>
cmp    $0x11,%eax
je     11bf <main+0x8f>
movl   $0x0,-0x24(%rbp)
movl   $0x0,-0x28(%rbp)
movl   $0x0,-0x2c(%rbp)
cmpl   $0x11,-0x28(%rbp)
jge    1217 <main+0xe7>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jl     1204 <main+0xd4>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jg     1204 <main+0xd4>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1209 <main+0xd9>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    11cd <main+0x9d>
cmpl   $0xd,-0x2c(%rbp)
je     1228 <main+0xf8>
movl   $0x0,-0x24(%rbp)
movl   $0x0,-0x28(%rbp)
movl   $0x0,-0x2c(%rbp)
cmpl   $0xf,-0x28(%rbp)
jge    12d2 <main+0x1a2>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jl     12bf <main+0x18f>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jg     12bf <main+0x18f>
mov    -0x30(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    129a <main+0x16a>
mov    -0x2c(%rbp),%eax
movslq -0x28(%rbp),%rcx
movsbl -0x20(%rbp,%rcx,1),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    12ba <main+0x18a>
mov    -0x2c(%rbp),%eax
movslq -0x28(%rbp),%rcx
movsbl -0x20(%rbp,%rcx,1),%ecx
sub    $0x30,%ecx
imul   $0x3,%ecx,%ecx
add    %ecx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    12bf <main+0x18f>
jmp    12c4 <main+0x194>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1236 <main+0x106>
movsbl -0x10(%rbp),%eax
sub    $0x30,%eax
mov    %eax,-0x34(%rbp)
mov    -0x2c(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    $0xa,%eax
sub    %edx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
cmp    -0x34(%rbp),%eax
je     1304 <main+0x1d4>
movl   $0x0,-0x24(%rbp)
cmpl   $0x0,-0x24(%rbp)
jne    1326 <main+0x1f6>
lea    0xcee(%rip),%rdi
call   1040 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    1678 <main+0x548>
lea    0xcd9(%rip),%rdi
call   1040 <printf@plt>
movl   $0x0,-0x28(%rbp)
cmpl   $0x11,-0x28(%rbp)
jge    1431 <main+0x301>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jne    141e <main+0x2ee>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x33,%eax
jne    1419 <main+0x2e9>
mov    -0x28(%rbp),%eax
add    $0x2,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x33,%eax
jne    1414 <main+0x2e4>
mov    -0x28(%rbp),%eax
add    $0x3,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x33,%eax
jne    140f <main+0x2df>
mov    -0x28(%rbp),%eax
add    $0x4,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x34,%eax
jne    140a <main+0x2da>
mov    -0x28(%rbp),%eax
add    $0x5,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x36,%eax
jne    1405 <main+0x2d5>
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    1400 <main+0x2d0>
mov    -0x28(%rbp),%eax
add    $0x6,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    13fb <main+0x2cb>
lea    0xc13(%rip),%rdi
call   1040 <printf@plt>
jmp    1400 <main+0x2d0>
jmp    1405 <main+0x2d5>
jmp    140a <main+0x2da>
jmp    140f <main+0x2df>
jmp    1414 <main+0x2e4>
jmp    1419 <main+0x2e9>
jmp    141e <main+0x2ee>
jmp    1423 <main+0x2f3>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1339 <main+0x209>
movl   $0x0,-0x28(%rbp)
cmpl   $0x11,-0x28(%rbp)
jge    1515 <main+0x3e5>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x35,%eax
jne    1502 <main+0x3d2>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x35,%eax
jne    14fd <main+0x3cd>
mov    -0x28(%rbp),%eax
add    $0x2,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x35,%eax
jne    14f8 <main+0x3c8>
mov    -0x28(%rbp),%eax
add    $0x3,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x38,%eax
jne    14f3 <main+0x3c3>
mov    -0x28(%rbp),%eax
add    $0x4,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x33,%eax
jne    14ee <main+0x3be>
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    14e9 <main+0x3b9>
mov    -0x28(%rbp),%eax
add    $0x5,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    14e4 <main+0x3b4>
lea    0xb36(%rip),%rdi
call   1040 <printf@plt>
jmp    14e9 <main+0x3b9>
jmp    14ee <main+0x3be>
jmp    14f3 <main+0x3c3>
jmp    14f8 <main+0x3c8>
jmp    14fd <main+0x3cd>
jmp    1502 <main+0x3d2>
jmp    1507 <main+0x3d7>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1438 <main+0x308>
movl   $0x0,-0x28(%rbp)
cmpl   $0x11,-0x28(%rbp)
jge    15de <main+0x4ae>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x34,%eax
jne    15cb <main+0x49b>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x32,%eax
jne    15c6 <main+0x496>
mov    -0x28(%rbp),%eax
add    $0x2,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x31,%eax
jne    15c1 <main+0x491>
mov    -0x28(%rbp),%eax
add    $0x3,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jne    15bc <main+0x48c>
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    15b7 <main+0x487>
mov    -0x28(%rbp),%eax
add    $0x4,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    15b2 <main+0x482>
lea    0xa76(%rip),%rdi
call   1040 <printf@plt>
jmp    15b7 <main+0x487>
jmp    15bc <main+0x48c>
jmp    15c1 <main+0x491>
jmp    15c6 <main+0x496>
jmp    15cb <main+0x49b>
jmp    15d0 <main+0x4a0>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    151c <main+0x3ec>
movl   $0x0,-0x28(%rbp)
cmpl   $0x11,-0x28(%rbp)
jge    1671 <main+0x541>
movslq -0x28(%rbp),%rax
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jne    165e <main+0x52e>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x31,%eax
jne    1659 <main+0x529>
mov    -0x28(%rbp),%eax
add    $0x2,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    1654 <main+0x524>
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x20(%rbp,%rax,1),%eax
cmp    $0x2d,%eax
jne    164f <main+0x51f>
lea    0x9f7(%rip),%rdi
call   1040 <printf@plt>
jmp    1654 <main+0x524>
jmp    1659 <main+0x529>
jmp    165e <main+0x52e>
jmp    1663 <main+0x533>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    15e5 <main+0x4b5>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x38,%rsp
lea    0xedb(%rip),%rdi
lea    0x10(%rsp),%rbx
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    0x10(%rsp),%al
mov    %al,0xc(%rsp)
mov    0x11(%rsp),%al
mov    %al,0xd(%rsp)
mov    0x12(%rsp),%al
and    $0xfe,%al
mov    %al,0xe(%rsp)
mov    %rbx,%rdi
call   1040 <strlen@plt>
mov    %eax,0x30(%rsp)
mov    0x10(%rsp),%al
add    $0xd0,%al
mov    %al,0xf(%rsp)
movdqu 0x11(%rsp),%xmm0
movdqa 0xe70(%rip),%xmm1
paddb  %xmm0,%xmm1
movdqa 0xe74(%rip),%xmm2
pminub %xmm1,%xmm2
pcmpeqb %xmm1,%xmm2
pmovmskb %xmm2,%ecx
mov    %ecx,%eax
shr    $0xf,%eax
mov    %eax,0x34(%rsp)
mov    %ecx,%r10d
shr    $0xe,%r10d
and    $0x1,%r10d
mov    %ecx,%r11d
shr    $0xd,%r11d
and    $0x1,%r11d
mov    %ecx,%ebx
shr    $0xc,%ebx
and    $0x1,%ebx
mov    %ecx,%ebp
shr    $0xb,%ebp
and    $0x1,%ebp
mov    %ecx,%r9d
shr    $0xa,%r9d
and    $0x1,%r9d
mov    %ecx,%r8d
shr    $0x9,%r8d
and    $0x1,%r8d
mov    %ecx,%edi
shr    $0x8,%edi
and    $0x1,%edi
movzbl %cl,%r13d
shr    $0x7,%r13d
mov    %ecx,%r12d
and    $0x40,%r12d
shr    $0x6,%r12d
mov    %ecx,%r14d
and    $0x20,%r14d
shr    $0x5,%r14d
mov    %ecx,%r15d
and    $0x10,%r15d
shr    $0x4,%r15d
mov    %ecx,%esi
and    $0x8,%esi
shr    $0x3,%esi
mov    %ecx,%edx
and    $0x4,%edx
shr    $0x2,%edx
mov    %ecx,%eax
and    $0x2,%eax
shr    %eax
and    $0x1,%ecx
cmpb   $0xa,0xf(%rsp)
adc    $0x0,%ecx
add    %eax,%ecx
add    %edx,%ecx
add    %esi,%ecx
add    %r15d,%ecx
add    %r14d,%ecx
add    %r12d,%ecx
add    %r13d,%ecx
add    %edi,%ecx
add    %r8d,%ecx
add    %r9d,%ecx
add    %ebp,%ecx
add    %ebx,%ecx
add    %r11d,%ecx
add    %r10d,%ecx
add    0x34(%rsp),%ecx
xor    %esi,%esi
xor    %edi,%edi
xor    %edx,%edx
jmp    1289 <main+0x159>
lea    0x0(%rbp,%rbp,2),%eax
add    %eax,%edx
add    $0xffffff70,%edx
add    $0x1,%edi
add    $0x1,%rsi
cmp    $0xf,%rsi
je     12a2 <main+0x172>
movsbl 0x10(%rsp,%rsi,1),%ebp
lea    -0x30(%rbp),%eax
cmp    $0x9,%al
ja     127f <main+0x14f>
test   $0x1,%dil
jne    1270 <main+0x140>
add    %ebp,%edx
add    $0xffffffd0,%edx
jmp    127c <main+0x14c>
pextrw $0x7,%xmm0,%eax
shr    $0x8,%eax
movsbl %al,%eax
add    $0xffffffd0,%eax
movslq %edx,%rdx
imul   $0x66666667,%rdx,%rsi
mov    %rsi,%rdi
shr    $0x3f,%rdi
sar    $0x22,%rsi
add    %edi,%esi
add    %esi,%esi
lea    (%rsi,%rsi,4),%esi
sub    %edx,%esi
add    $0xa,%esi
cmp    %eax,%esi
jne    137c <main+0x24c>
cmp    $0xd,%ecx
jne    137c <main+0x24c>
cmpl   $0x11,0x30(%rsp)
jne    137c <main+0x24c>
cmpb   $0x38,0xe(%rsp)
jne    137c <main+0x24c>
cmpb   $0x37,0xd(%rsp)
jne    137c <main+0x24c>
cmpb   $0x39,0xc(%rsp)
jne    137c <main+0x24c>
lea    0xd16(%rip),%rdi
call   1030 <puts@plt>
mov    $0xffffffffffffffff,%rbp
lea    0xd3d(%rip),%rbx
jmp    133a <main+0x20a>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
add    $0x1,%rbp
cmp    $0x10,%rbp
je     1399 <main+0x269>
cmpb   $0x39,0x11(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x33,0x12(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x33,0x13(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x33,0x14(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x34,0x15(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x36,0x16(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x2d,0x10(%rsp,%rbp,1)
jne    1330 <main+0x200>
cmpb   $0x2d,0x17(%rsp,%rbp,1)
jne    1330 <main+0x200>
mov    %rbx,%rdi
call   1030 <puts@plt>
jmp    1330 <main+0x200>
lea    0xce5(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
add    $0x38,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    $0xffffffffffffffff,%rbp
lea    0xca9(%rip),%rbx
jmp    13ba <main+0x28a>
nopl   0x0(%rax)
add    $0x1,%rbp
cmp    $0x10,%rbp
je     13f5 <main+0x2c5>
cmpb   $0x35,0x11(%rsp,%rbp,1)
jne    13b0 <main+0x280>
cmpb   $0x35,0x12(%rsp,%rbp,1)
jne    13b0 <main+0x280>
cmpb   $0x35,0x13(%rsp,%rbp,1)
jne    13b0 <main+0x280>
cmpb   $0x38,0x14(%rsp,%rbp,1)
jne    13b0 <main+0x280>
cmpb   $0x33,0x15(%rsp,%rbp,1)
jne    13b0 <main+0x280>
cmpb   $0x2d,0x10(%rsp,%rbp,1)
jne    13b0 <main+0x280>
cmpb   $0x2d,0x16(%rsp,%rbp,1)
jne    13b0 <main+0x280>
mov    %rbx,%rdi
call   1030 <puts@plt>
jmp    13b0 <main+0x280>
mov    $0xffffffffffffffff,%rbp
lea    0xc30(%rip),%rbx
jmp    141a <main+0x2ea>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%rbp
cmp    $0x10,%rbp
je     144e <main+0x31e>
cmpb   $0x34,0x11(%rsp,%rbp,1)
jne    1410 <main+0x2e0>
cmpb   $0x32,0x12(%rsp,%rbp,1)
jne    1410 <main+0x2e0>
cmpb   $0x31,0x13(%rsp,%rbp,1)
jne    1410 <main+0x2e0>
cmpb   $0x30,0x14(%rsp,%rbp,1)
jne    1410 <main+0x2e0>
cmpb   $0x2d,0x10(%rsp,%rbp,1)
jne    1410 <main+0x2e0>
cmpb   $0x2d,0x15(%rsp,%rbp,1)
jne    1410 <main+0x2e0>
mov    %rbx,%rdi
call   1030 <puts@plt>
jmp    1410 <main+0x2e0>
mov    $0xffffffffffffffff,%rbp
lea    0xbc9(%rip),%rbx
jmp    146e <main+0x33e>
xchg   %ax,%ax
add    $0x1,%rbp
cmp    $0x10,%rbp
je     1388 <main+0x258>
cmpb   $0x30,0x11(%rsp,%rbp,1)
jne    1460 <main+0x330>
cmpb   $0x31,0x12(%rsp,%rbp,1)
jne    1460 <main+0x330>
cmpb   $0x2d,0x13(%rsp,%rbp,1)
jne    1460 <main+0x330>
cmpb   $0x2d,0x10(%rsp,%rbp,1)
jne    1460 <main+0x330>
mov    %rbx,%rdi
call   1030 <puts@plt>
jmp    1460 <main+0x330>

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

LLVM IR (-O2):
@.str = [3 x i8] c"%s\00"
@str = [2 x i8] c"1\00"
@str.7 = [14 x i8] c"Pyramid Books\00"
@str.8 = [29 x i8] c"FUNimation Productions, Ltd.\00"
@str.9 = [13 x i8] c"Alyson Books\00"
@str.10 = [11 x i8] c"Bluebridge\00"
@str.11 = [2 x i8] c"0\00"
define i32 @main() {
%1 = alloca [21 x i8]
%2 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 0
%3 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %2)
%4 = load i8, i8* %2
%5 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 1
%6 = load i8, i8* %5
%7 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 2
%8 = load i8, i8* %7
%9 = and i8 %8, -2
%10 = call i32 @strlen(i8* %2)
%11 = load i8, i8* %2
%12 = add i8 %11, -48
%13 = icmp ult i8 %12, 10
%14 = zext i1 %13 to i32
%15 = bitcast i8* %5 to <16 x i8>*
%16 = load <16 x i8>, <16 x i8>* %15
%17 = add <16 x i8> %16, <i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48, i8 -48>
%18 = icmp ult <16 x i8> %17, <i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10, i8 10>
%19 = extractelement <16 x i1> %18, i64 0
%20 = zext i1 %19 to i32
%21 = add nuw nsw i32 %14, %20
%22 = extractelement <16 x i1> %18, i64 1
%23 = zext i1 %22 to i32
%24 = add nuw nsw i32 %21, %23
%25 = extractelement <16 x i1> %18, i64 2
%26 = zext i1 %25 to i32
%27 = add nuw nsw i32 %24, %26
%28 = extractelement <16 x i1> %18, i64 3
%29 = zext i1 %28 to i32
%30 = add nuw nsw i32 %27, %29
%31 = extractelement <16 x i1> %18, i64 4
%32 = zext i1 %31 to i32
%33 = add nuw nsw i32 %30, %32
%34 = extractelement <16 x i1> %18, i64 5
%35 = zext i1 %34 to i32
%36 = add nuw nsw i32 %33, %35
%37 = extractelement <16 x i1> %18, i64 6
%38 = zext i1 %37 to i32
%39 = add nuw nsw i32 %36, %38
%40 = extractelement <16 x i1> %18, i64 7
%41 = zext i1 %40 to i32
%42 = add nuw nsw i32 %39, %41
%43 = extractelement <16 x i1> %18, i64 8
%44 = zext i1 %43 to i32
%45 = add nuw nsw i32 %42, %44
%46 = extractelement <16 x i1> %18, i64 9
%47 = zext i1 %46 to i32
%48 = add nuw nsw i32 %45, %47
%49 = extractelement <16 x i1> %18, i64 10
%50 = zext i1 %49 to i32
%51 = add nuw nsw i32 %48, %50
%52 = extractelement <16 x i1> %18, i64 11
%53 = zext i1 %52 to i32
%54 = add nuw nsw i32 %51, %53
%55 = extractelement <16 x i1> %18, i64 12
%56 = zext i1 %55 to i32
%57 = add nuw nsw i32 %54, %56
%58 = extractelement <16 x i1> %18, i64 13
%59 = zext i1 %58 to i32
%60 = add nuw nsw i32 %57, %59
%61 = extractelement <16 x i1> %18, i64 14
%62 = zext i1 %61 to i32
%63 = add nuw nsw i32 %60, %62
%64 = extractelement <16 x i1> %18, i64 15
%65 = zext i1 %64 to i32
%66 = add nuw nsw i32 %63, %65
%67 = icmp ne i8 %6, 55
%68 = icmp ne i32 %10, 17
br label %69
69: ; preds = %0, %90
%70 = phi i64 [ 0, %0 ], [ %93, %90 ]
%71 = phi i32 [ 0, %0 ], [ %92, %90 ]
%72 = phi i32 [ 0, %0 ], [ %91, %90 ]
%73 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %70
%74 = load i8, i8* %73
%75 = sext i8 %74 to i32
%76 = add i8 %74, -48
%77 = icmp ult i8 %76, 10
br i1 %77, label %78, label %90
78: ; preds = %69
%79 = and i32 %71, 1
%80 = icmp eq i32 %79, 0
br i1 %80, label %81, label %85
81: ; preds = %78
%82 = add i32 %72, -48
%83 = add i32 %82, %75
%84 = add nuw nsw i32 %71, 1
br label %90
85: ; preds = %78
%86 = mul nsw i32 %75, 3
%87 = add i32 %72, -144
%88 = add i32 %87, %86
%89 = add nsw i32 %71, 1
br label %90
90: ; preds = %69, %85, %81
%91 = phi i32 [ %83, %81 ], [ %88, %85 ], [ %72, %69 ]
%92 = phi i32 [ %84, %81 ], [ %89, %85 ], [ %71, %69 ]
%93 = add nuw nsw i64 %70, 1
%94 = icmp eq i64 %93, 15
br i1 %94, label %95, label %69
95: ; preds = %90
%96 = icmp ne i8 %4, 57
%97 = icmp ne i8 %9, 56
%98 = icmp ne i32 %66, 13
%99 = extractelement <16 x i8> %16, i64 15
%100 = sext i8 %99 to i32
%101 = add nsw i32 %100, -48
%102 = srem i32 %91, 10
%103 = sub nsw i32 10, %102
%104 = icmp ne i32 %103, %101
%105 = select i1 %104, i1 true, i1 %98
%106 = select i1 %105, i1 true, i1 %68
%107 = select i1 %106, i1 true, i1 %97
%108 = select i1 %107, i1 true, i1 %67
%109 = select i1 %108, i1 true, i1 %96
br i1 %109, label %110, label %112
110: ; preds = %95
%111 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str.11, i64 0, i64 0))
br label %255
112: ; preds = %95
%113 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str, i64 0, i64 0))
br label %114
114: ; preds = %112, %156
%115 = phi i64 [ 0, %112 ], [ %119, %156 ]
%116 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %115
%117 = load i8, i8* %116
%118 = icmp eq i8 %117, 57
%119 = add nuw nsw i64 %115, 1
br i1 %118, label %120, label %156
120: ; preds = %114
%121 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %119
%122 = load i8, i8* %121
%123 = icmp eq i8 %122, 51
br i1 %123, label %124, label %156
124: ; preds = %120
%125 = add nuw nsw i64 %115, 2
%126 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %125
%127 = load i8, i8* %126
%128 = icmp eq i8 %127, 51
br i1 %128, label %129, label %156
129: ; preds = %124
%130 = add nuw nsw i64 %115, 3
%131 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %130
%132 = load i8, i8* %131
%133 = icmp eq i8 %132, 51
br i1 %133, label %134, label %156
134: ; preds = %129
%135 = add nuw nsw i64 %115, 4
%136 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %135
%137 = load i8, i8* %136
%138 = icmp eq i8 %137, 52
br i1 %138, label %139, label %156
139: ; preds = %134
%140 = add nuw nsw i64 %115, 5
%141 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %140
%142 = load i8, i8* %141
%143 = icmp eq i8 %142, 54
br i1 %143, label %144, label %156
144: ; preds = %139
%145 = add nsw i64 %115, -1
%146 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %145
%147 = load i8, i8* %146
%148 = icmp eq i8 %147, 45
br i1 %148, label %149, label %156
149: ; preds = %144
%150 = add nuw nsw i64 %115, 6
%151 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %150
%152 = load i8, i8* %151
%153 = icmp eq i8 %152, 45
br i1 %153, label %154, label %156
154: ; preds = %149
%155 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.10, i64 0, i64 0))
br label %156
156: ; preds = %114, %124, %134, %144, %154, %149, %139, %129, %120
%157 = icmp eq i64 %119, 17
br i1 %157, label %158, label %114
158: ; preds = %156, %195
%159 = phi i64 [ %163, %195 ], [ 0, %156 ]
%160 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %159
%161 = load i8, i8* %160
%162 = icmp eq i8 %161, 53
%163 = add nuw nsw i64 %159, 1
br i1 %162, label %164, label %195
164: ; preds = %158
%165 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %163
%166 = load i8, i8* %165
%167 = icmp eq i8 %166, 53
br i1 %167, label %168, label %195
168: ; preds = %164
%169 = add nuw nsw i64 %159, 2
%170 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %169
%171 = load i8, i8* %170
%172 = icmp eq i8 %171, 53
br i1 %172, label %173, label %195
173: ; preds = %168
%174 = add nuw nsw i64 %159, 3
%175 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %174
%176 = load i8, i8* %175
%177 = icmp eq i8 %176, 56
br i1 %177, label %178, label %195
178: ; preds = %173
%179 = add nuw nsw i64 %159, 4
%180 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %179
%181 = load i8, i8* %180
%182 = icmp eq i8 %181, 51
br i1 %182, label %183, label %195
183: ; preds = %178
%184 = add nsw i64 %159, -1
%185 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %184
%186 = load i8, i8* %185
%187 = icmp eq i8 %186, 45
br i1 %187, label %188, label %195
188: ; preds = %183
%189 = add nuw nsw i64 %159, 5
%190 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %189
%191 = load i8, i8* %190
%192 = icmp eq i8 %191, 45
br i1 %192, label %193, label %195
193: ; preds = %188
%194 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.9, i64 0, i64 0))
br label %195
195: ; preds = %158, %168, %178, %188, %193, %183, %173, %164
%196 = icmp eq i64 %163, 17
br i1 %196, label %197, label %158
197: ; preds = %195, %229
%198 = phi i64 [ %202, %229 ], [ 0, %195 ]
%199 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %198
%200 = load i8, i8* %199
%201 = icmp eq i8 %200, 52
%202 = add nuw nsw i64 %198, 1
br i1 %201, label %203, label %229
203: ; preds = %197
%204 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %202
%205 = load i8, i8* %204
%206 = icmp eq i8 %205, 50
br i1 %206, label %207, label %229
207: ; preds = %203
%208 = add nuw nsw i64 %198, 2
%209 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %208
%210 = load i8, i8* %209
%211 = icmp eq i8 %210, 49
br i1 %211, label %212, label %229
212: ; preds = %207
%213 = add nuw nsw i64 %198, 3
%214 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %213
%215 = load i8, i8* %214
%216 = icmp eq i8 %215, 48
br i1 %216, label %217, label %229
217: ; preds = %212
%218 = add nsw i64 %198, -1
%219 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %218
%220 = load i8, i8* %219
%221 = icmp eq i8 %220, 45
br i1 %221, label %222, label %229
222: ; preds = %217
%223 = add nuw nsw i64 %198, 4
%224 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %223
%225 = load i8, i8* %224
%226 = icmp eq i8 %225, 45
br i1 %226, label %227, label %229
227: ; preds = %222
%228 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str.8, i64 0, i64 0))
br label %229
229: ; preds = %197, %207, %217, %227, %222, %212, %203
%230 = icmp eq i64 %202, 17
br i1 %230, label %231, label %197
231: ; preds = %229, %253
%232 = phi i64 [ %236, %253 ], [ 0, %229 ]
%233 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %232
%234 = load i8, i8* %233
%235 = icmp eq i8 %234, 48
%236 = add nuw nsw i64 %232, 1
br i1 %235, label %237, label %253
237: ; preds = %231
%238 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %236
%239 = load i8, i8* %238
%240 = icmp eq i8 %239, 49
br i1 %240, label %241, label %253
241: ; preds = %237
%242 = add nuw nsw i64 %232, 2
%243 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %242
%244 = load i8, i8* %243
%245 = icmp eq i8 %244, 45
br i1 %245, label %246, label %253
246: ; preds = %241
%247 = add nsw i64 %232, -1
%248 = getelementptr inbounds [21 x i8], [21 x i8]* %1, i64 0, i64 %247
%249 = load i8, i8* %248
%250 = icmp eq i8 %249, 45
br i1 %250, label %251, label %253
251: ; preds = %246
%252 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.7, i64 0, i64 0))
br label %253
253: ; preds = %231, %241, %251, %246, %237
%254 = icmp eq i64 %236, 17
br i1 %254, label %255, label %231
255: ; preds = %253, %110
ret i32 0
}