#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);
int /*<<< orphan*/ scanf(char *, char *);
char strlen(char *);
int main() {
  char Nokia[200], l;
  int counter = 0, count;
  scanf("%[^\n]s", Nokia);
  l = strlen(Nokia);
  for (count = 0; count < l; count++) {
    if (Nokia[count] == 'a')
      counter++;
    if (Nokia[count] == 'd')
      counter++;
    if (Nokia[count] == 'g')
      counter++;
    if (Nokia[count] == 'j')
      counter++;
    if (Nokia[count] == 'm')
      counter++;
    if (Nokia[count] == 'p')
      counter++;
    if (Nokia[count] == 't')
      counter++;
    if (Nokia[count] == 'w')
      counter++;
    if (Nokia[count] == ' ')
      counter++;
    if (Nokia[count] == 'A')
      counter++;
    if (Nokia[count] == 'D')
      counter++;
    if (Nokia[count] == 'G')
      counter++;
    if (Nokia[count] == 'J')
      counter++;
    if (Nokia[count] == 'M')
      counter++;
    if (Nokia[count] == 'P')
      counter++;
    if (Nokia[count] == 'T')
      counter++;
    if (Nokia[count] == 'W')
      counter++;
    if (Nokia[count] == 'b')
      counter = counter + 2;
    if (Nokia[count] == 'e')
      counter = counter + 2;
    if (Nokia[count] == 'k')
      counter = counter + 2;
    if (Nokia[count] == 'h')
      counter = counter + 2;
    if (Nokia[count] == 'n')
      counter = counter + 2;
    if (Nokia[count] == 'q')
      counter = counter + 2;
    if (Nokia[count] == 'u')
      counter = counter + 2;
    if (Nokia[count] == 'x')
      counter = counter + 2;
    if (Nokia[count] == 'B')
      counter = counter + 2;
    if (Nokia[count] == 'E')
      counter = counter + 2;
    if (Nokia[count] == 'K')
      counter = counter + 2;
    if (Nokia[count] == 'H')
      counter = counter + 2;
    if (Nokia[count] == 'N')
      counter = counter + 2;
    if (Nokia[count] == 'Q')
      counter = counter + 2;
    if (Nokia[count] == 'U')
      counter = counter + 2;
    if (Nokia[count] == 'X')
      counter = counter + 2;
    if (Nokia[count] == 'c')
      counter = counter + 3;
    if (Nokia[count] == 'f')
      counter = counter + 3;
    if (Nokia[count] == 'i')
      counter = counter + 3;
    if (Nokia[count] == 'l')
      counter = counter + 3;
    if (Nokia[count] == 'o')
      counter = counter + 3;
    if (Nokia[count] == 'r')
      counter = counter + 3;
    if (Nokia[count] == 'v')
      counter = counter + 3;
    if (Nokia[count] == 'y')
      counter = counter + 3;
    if (Nokia[count] == 'C')
      counter = counter + 3;
    if (Nokia[count] == 'F')
      counter = counter + 3;
    if (Nokia[count] == 'I')
      counter = counter + 3;
    if (Nokia[count] == 'L')
      counter = counter + 3;
    if (Nokia[count] == 'O')
      counter = counter + 3;
    if (Nokia[count] == 'R')
      counter = counter + 3;
    if (Nokia[count] == 'V')
      counter = counter + 3;
    if (Nokia[count] == 'Y')
      counter = counter + 3;
    if (Nokia[count] == 's')
      counter = counter + 4;
    if (Nokia[count] == 'z')
      counter = counter + 4;
    if (Nokia[count] == 'S')
      counter = counter + 4;
    if (Nokia[count] == 'Z')
      counter = counter + 4;
  }
  printf("\n%d", counter);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0xd8(%rbp)
lea    -0xd0(%rbp),%rsi
lea    0xea6(%rip),%rdi
call   1050 <scanf@plt>
lea    -0xd0(%rbp),%rdi
call   1030 <strlen@plt>
mov    %al,-0xd1(%rbp)
movl   $0x0,-0xdc(%rbp)
mov    -0xdc(%rbp),%eax
movsbl -0xd1(%rbp),%ecx
cmp    %ecx,%eax
jge    19bc <main+0x88c>
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x61,%eax
jne    11b7 <main+0x87>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x64,%eax
jne    11de <main+0xae>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x67,%eax
jne    1205 <main+0xd5>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x6a,%eax
jne    122c <main+0xfc>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x6d,%eax
jne    1253 <main+0x123>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x70,%eax
jne    127a <main+0x14a>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x74,%eax
jne    12a1 <main+0x171>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x77,%eax
jne    12c8 <main+0x198>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x20,%eax
jne    12ef <main+0x1bf>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x41,%eax
jne    1316 <main+0x1e6>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x44,%eax
jne    133d <main+0x20d>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x47,%eax
jne    1364 <main+0x234>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x4a,%eax
jne    138b <main+0x25b>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x4d,%eax
jne    13b2 <main+0x282>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x50,%eax
jne    13d9 <main+0x2a9>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x54,%eax
jne    1400 <main+0x2d0>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x57,%eax
jne    1427 <main+0x2f7>
mov    -0xd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x62,%eax
jne    144e <main+0x31e>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x65,%eax
jne    1475 <main+0x345>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x6b,%eax
jne    149c <main+0x36c>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x68,%eax
jne    14c3 <main+0x393>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x6e,%eax
jne    14ea <main+0x3ba>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x71,%eax
jne    1511 <main+0x3e1>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x75,%eax
jne    1538 <main+0x408>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x78,%eax
jne    155f <main+0x42f>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x42,%eax
jne    1586 <main+0x456>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x45,%eax
jne    15ad <main+0x47d>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x4b,%eax
jne    15d4 <main+0x4a4>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x48,%eax
jne    15fb <main+0x4cb>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x4e,%eax
jne    1622 <main+0x4f2>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x51,%eax
jne    1649 <main+0x519>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x55,%eax
jne    1670 <main+0x540>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
jne    1697 <main+0x567>
mov    -0xd8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x63,%eax
jne    16be <main+0x58e>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x66,%eax
jne    16e5 <main+0x5b5>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x69,%eax
jne    170c <main+0x5dc>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x6c,%eax
jne    1733 <main+0x603>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x6f,%eax
jne    175a <main+0x62a>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x72,%eax
jne    1781 <main+0x651>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x76,%eax
jne    17a8 <main+0x678>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x79,%eax
jne    17cf <main+0x69f>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
jne    17f6 <main+0x6c6>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x46,%eax
jne    181d <main+0x6ed>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    1844 <main+0x714>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
jne    186b <main+0x73b>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x4f,%eax
jne    1892 <main+0x762>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x52,%eax
jne    18b9 <main+0x789>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
jne    18e0 <main+0x7b0>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x59,%eax
jne    1907 <main+0x7d7>
mov    -0xd8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x73,%eax
jne    192e <main+0x7fe>
mov    -0xd8(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x7a,%eax
jne    1955 <main+0x825>
mov    -0xd8(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x53,%eax
jne    197c <main+0x84c>
mov    -0xd8(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0xd8(%rbp)
movslq -0xdc(%rbp),%rax
movsbl -0xd0(%rbp,%rax,1),%eax
ff
cmp    $0x5a,%eax
jne    19a3 <main+0x873>
mov    -0xd8(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0xd8(%rbp)
jmp    19a8 <main+0x878>
mov    -0xdc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xdc(%rbp)
jmp    117b <main+0x4b>
mov    -0xd8(%rbp),%esi
lea    0x63e(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0xd0,%rsp
lea    0xec1(%rip),%rdi
mov    %rsp,%rbx
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    %rbx,%rdi
call   1030 <strlen@plt>
test   %al,%al
jle    1384 <main+0x254>
movzbl %al,%eax
xor    %ecx,%ecx
xor    %esi,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movzbl (%rsp,%rcx,1),%edx
xor    %edi,%edi
cmp    $0x61,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x64,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x67,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x6a,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x6d,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x70,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x74,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x77,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x20,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x41,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x44,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x47,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x4a,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x4d,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x50,%dl
sete   %dil
add    %esi,%edi
xor    %esi,%esi
cmp    $0x54,%dl
sete   %sil
add    %edi,%esi
xor    %edi,%edi
cmp    $0x57,%dl
sete   %dil
lea    (%rsi,%rdi,1),%ebx
cmp    $0x62,%dl
lea    0x2(%rdi,%rsi,1),%esi
cmovne %ebx,%esi
lea    0x2(%rsi),%edi
cmp    $0x65,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x6b,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x68,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x6e,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x71,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x75,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x78,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x42,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x45,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x4b,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x48,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x4e,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x51,%dl
cmovne %esi,%edi
lea    0x2(%rdi),%esi
cmp    $0x55,%dl
cmovne %edi,%esi
lea    0x2(%rsi),%edi
cmp    $0x58,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x63,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x66,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x69,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x6c,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x6f,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x72,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x76,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x79,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x43,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x46,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x49,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x4c,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x4f,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x52,%dl
cmovne %esi,%edi
lea    0x3(%rdi),%esi
cmp    $0x56,%dl
cmovne %edi,%esi
lea    0x3(%rsi),%edi
cmp    $0x59,%dl
cmovne %esi,%edi
lea    0x4(%rdi),%esi
cmp    $0x73,%dl
cmovne %edi,%esi
lea    0x4(%rsi),%edi
cmp    $0x7a,%dl
cmovne %esi,%edi
lea    0x4(%rdi),%ebx
cmp    $0x53,%dl
cmovne %edi,%ebx
lea    0x4(%rbx),%esi
cmp    $0x5a,%dl
cmovne %ebx,%esi
add    $0x1,%rcx
cmp    %rcx,%rax
jne    1170 <main+0x40>
jmp    1386 <main+0x256>
xor    %esi,%esi
lea    0xc7a(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0xd0,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [7 x i8] c"%[^\0A]s\00"
@.str.1 = [4 x i8] c"\0A%d\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [200 x i8]
%3 = alloca i8
%4 = alloca i32
%5 = alloca i32
store i32 0, i32* %1
store i32 0, i32* %4
%6 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 0
%7 = call i32 @scanf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* %6)
%8 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 0
%9 = call signext i8 @strlen(i8* %8)
store i8 %9, i8* %3
store i32 0, i32* %5
br label %10
10: ; preds = %546, %0
%11 = load i32, i32* %5
%12 = load i8, i8* %3
%13 = sext i8 %12 to i32
%14 = icmp slt i32 %11, %13
br i1 %14, label %15, label %549
15: ; preds = %10
%16 = load i32, i32* %5
%17 = sext i32 %16 to i64
%18 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %17
%19 = load i8, i8* %18
%20 = sext i8 %19 to i32
%21 = icmp eq i32 %20, 97
br i1 %21, label %22, label %25
22: ; preds = %15
%23 = load i32, i32* %4
%24 = add nsw i32 %23, 1
store i32 %24, i32* %4
br label %25
25: ; preds = %22, %15
%26 = load i32, i32* %5
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %27
%29 = load i8, i8* %28
%30 = sext i8 %29 to i32
%31 = icmp eq i32 %30, 100
br i1 %31, label %32, label %35
32: ; preds = %25
%33 = load i32, i32* %4
%34 = add nsw i32 %33, 1
store i32 %34, i32* %4
br label %35
35: ; preds = %32, %25
%36 = load i32, i32* %5
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %37
%39 = load i8, i8* %38
%40 = sext i8 %39 to i32
%41 = icmp eq i32 %40, 103
br i1 %41, label %42, label %45
42: ; preds = %35
%43 = load i32, i32* %4
%44 = add nsw i32 %43, 1
store i32 %44, i32* %4
br label %45
45: ; preds = %42, %35
%46 = load i32, i32* %5
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %47
%49 = load i8, i8* %48
%50 = sext i8 %49 to i32
%51 = icmp eq i32 %50, 106
br i1 %51, label %52, label %55
52: ; preds = %45
%53 = load i32, i32* %4
%54 = add nsw i32 %53, 1
store i32 %54, i32* %4
br label %55
55: ; preds = %52, %45
%56 = load i32, i32* %5
%57 = sext i32 %56 to i64
%58 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %57
%59 = load i8, i8* %58
%60 = sext i8 %59 to i32
%61 = icmp eq i32 %60, 109
br i1 %61, label %62, label %65
62: ; preds = %55
%63 = load i32, i32* %4
%64 = add nsw i32 %63, 1
store i32 %64, i32* %4
br label %65
65: ; preds = %62, %55
%66 = load i32, i32* %5
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %67
%69 = load i8, i8* %68
%70 = sext i8 %69 to i32
%71 = icmp eq i32 %70, 112
br i1 %71, label %72, label %75
72: ; preds = %65
%73 = load i32, i32* %4
%74 = add nsw i32 %73, 1
store i32 %74, i32* %4
br label %75
75: ; preds = %72, %65
%76 = load i32, i32* %5
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %77
%79 = load i8, i8* %78
%80 = sext i8 %79 to i32
%81 = icmp eq i32 %80, 116
br i1 %81, label %82, label %85
82: ; preds = %75
%83 = load i32, i32* %4
%84 = add nsw i32 %83, 1
store i32 %84, i32* %4
br label %85
85: ; preds = %82, %75
%86 = load i32, i32* %5
%87 = sext i32 %86 to i64
%88 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %87
%89 = load i8, i8* %88
%90 = sext i8 %89 to i32
%91 = icmp eq i32 %90, 119
br i1 %91, label %92, label %95
92: ; preds = %85
%93 = load i32, i32* %4
%94 = add nsw i32 %93, 1
store i32 %94, i32* %4
br label %95
95: ; preds = %92, %85
%96 = load i32, i32* %5
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %97
%99 = load i8, i8* %98
%100 = sext i8 %99 to i32
%101 = icmp eq i32 %100, 32
br i1 %101, label %102, label %105
102: ; preds = %95
%103 = load i32, i32* %4
%104 = add nsw i32 %103, 1
store i32 %104, i32* %4
br label %105
105: ; preds = %102, %95
%106 = load i32, i32* %5
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %107
%109 = load i8, i8* %108
%110 = sext i8 %109 to i32
%111 = icmp eq i32 %110, 65
br i1 %111, label %112, label %115
112: ; preds = %105
%113 = load i32, i32* %4
%114 = add nsw i32 %113, 1
store i32 %114, i32* %4
br label %115
115: ; preds = %112, %105
%116 = load i32, i32* %5
%117 = sext i32 %116 to i64
%118 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %117
%119 = load i8, i8* %118
%120 = sext i8 %119 to i32
%121 = icmp eq i32 %120, 68
br i1 %121, label %122, label %125
122: ; preds = %115
%123 = load i32, i32* %4
%124 = add nsw i32 %123, 1
store i32 %124, i32* %4
br label %125
125: ; preds = %122, %115
%126 = load i32, i32* %5
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %127
%129 = load i8, i8* %128
%130 = sext i8 %129 to i32
%131 = icmp eq i32 %130, 71
br i1 %131, label %132, label %135
132: ; preds = %125
%133 = load i32, i32* %4
%134 = add nsw i32 %133, 1
store i32 %134, i32* %4
br label %135
135: ; preds = %132, %125
%136 = load i32, i32* %5
%137 = sext i32 %136 to i64
%138 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %137
%139 = load i8, i8* %138
%140 = sext i8 %139 to i32
%141 = icmp eq i32 %140, 74
br i1 %141, label %142, label %145
142: ; preds = %135
%143 = load i32, i32* %4
%144 = add nsw i32 %143, 1
store i32 %144, i32* %4
br label %145
145: ; preds = %142, %135
%146 = load i32, i32* %5
%147 = sext i32 %146 to i64
%148 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %147
%149 = load i8, i8* %148
%150 = sext i8 %149 to i32
%151 = icmp eq i32 %150, 77
br i1 %151, label %152, label %155
152: ; preds = %145
%153 = load i32, i32* %4
%154 = add nsw i32 %153, 1
store i32 %154, i32* %4
br label %155
155: ; preds = %152, %145
%156 = load i32, i32* %5
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %157
%159 = load i8, i8* %158
%160 = sext i8 %159 to i32
%161 = icmp eq i32 %160, 80
br i1 %161, label %162, label %165
162: ; preds = %155
%163 = load i32, i32* %4
%164 = add nsw i32 %163, 1
store i32 %164, i32* %4
br label %165
165: ; preds = %162, %155
%166 = load i32, i32* %5
%167 = sext i32 %166 to i64
%168 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %167
%169 = load i8, i8* %168
%170 = sext i8 %169 to i32
%171 = icmp eq i32 %170, 84
br i1 %171, label %172, label %175
172: ; preds = %165
%173 = load i32, i32* %4
%174 = add nsw i32 %173, 1
store i32 %174, i32* %4
br label %175
175: ; preds = %172, %165
%176 = load i32, i32* %5
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %177
%179 = load i8, i8* %178
%180 = sext i8 %179 to i32
%181 = icmp eq i32 %180, 87
br i1 %181, label %182, label %185
182: ; preds = %175
%183 = load i32, i32* %4
%184 = add nsw i32 %183, 1
store i32 %184, i32* %4
br label %185
185: ; preds = %182, %175
%186 = load i32, i32* %5
%187 = sext i32 %186 to i64
%188 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %187
%189 = load i8, i8* %188
%190 = sext i8 %189 to i32
%191 = icmp eq i32 %190, 98
br i1 %191, label %192, label %195
192: ; preds = %185
%193 = load i32, i32* %4
%194 = add nsw i32 %193, 2
store i32 %194, i32* %4
br label %195
195: ; preds = %192, %185
%196 = load i32, i32* %5
%197 = sext i32 %196 to i64
%198 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %197
%199 = load i8, i8* %198
%200 = sext i8 %199 to i32
%201 = icmp eq i32 %200, 101
br i1 %201, label %202, label %205
202: ; preds = %195
%203 = load i32, i32* %4
%204 = add nsw i32 %203, 2
store i32 %204, i32* %4
br label %205
205: ; preds = %202, %195
%206 = load i32, i32* %5
%207 = sext i32 %206 to i64
%208 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %207
%209 = load i8, i8* %208
%210 = sext i8 %209 to i32
%211 = icmp eq i32 %210, 107
br i1 %211, label %212, label %215
212: ; preds = %205
%213 = load i32, i32* %4
%214 = add nsw i32 %213, 2
store i32 %214, i32* %4
br label %215
215: ; preds = %212, %205
%216 = load i32, i32* %5
%217 = sext i32 %216 to i64
%218 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %217
%219 = load i8, i8* %218
%220 = sext i8 %219 to i32
%221 = icmp eq i32 %220, 104
br i1 %221, label %222, label %225
222: ; preds = %215
%223 = load i32, i32* %4
%224 = add nsw i32 %223, 2
store i32 %224, i32* %4
br label %225
225: ; preds = %222, %215
%226 = load i32, i32* %5
%227 = sext i32 %226 to i64
%228 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %227
%229 = load i8, i8* %228
%230 = sext i8 %229 to i32
%231 = icmp eq i32 %230, 110
br i1 %231, label %232, label %235
232: ; preds = %225
%233 = load i32, i32* %4
%234 = add nsw i32 %233, 2
store i32 %234, i32* %4
br label %235
235: ; preds = %232, %225
%236 = load i32, i32* %5
%237 = sext i32 %236 to i64
%238 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %237
%239 = load i8, i8* %238
%240 = sext i8 %239 to i32
%241 = icmp eq i32 %240, 113
br i1 %241, label %242, label %245
242: ; preds = %235
%243 = load i32, i32* %4
%244 = add nsw i32 %243, 2
store i32 %244, i32* %4
br label %245
245: ; preds = %242, %235
%246 = load i32, i32* %5
%247 = sext i32 %246 to i64
%248 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %247
%249 = load i8, i8* %248
%250 = sext i8 %249 to i32
%251 = icmp eq i32 %250, 117
br i1 %251, label %252, label %255
252: ; preds = %245
%253 = load i32, i32* %4
%254 = add nsw i32 %253, 2
store i32 %254, i32* %4
br label %255
255: ; preds = %252, %245
%256 = load i32, i32* %5
%257 = sext i32 %256 to i64
%258 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %257
%259 = load i8, i8* %258
%260 = sext i8 %259 to i32
%261 = icmp eq i32 %260, 120
br i1 %261, label %262, label %265
262: ; preds = %255
%263 = load i32, i32* %4
%264 = add nsw i32 %263, 2
store i32 %264, i32* %4
br label %265
265: ; preds = %262, %255
%266 = load i32, i32* %5
%267 = sext i32 %266 to i64
%268 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %267
%269 = load i8, i8* %268
%270 = sext i8 %269 to i32
%271 = icmp eq i32 %270, 66
br i1 %271, label %272, label %275
272: ; preds = %265
%273 = load i32, i32* %4
%274 = add nsw i32 %273, 2
store i32 %274, i32* %4
br label %275
275: ; preds = %272, %265
%276 = load i32, i32* %5
%277 = sext i32 %276 to i64
%278 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %277
%279 = load i8, i8* %278
%280 = sext i8 %279 to i32
%281 = icmp eq i32 %280, 69
br i1 %281, label %282, label %285
282: ; preds = %275
%283 = load i32, i32* %4
%284 = add nsw i32 %283, 2
store i32 %284, i32* %4
br label %285
285: ; preds = %282, %275
%286 = load i32, i32* %5
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %287
%289 = load i8, i8* %288
%290 = sext i8 %289 to i32
%291 = icmp eq i32 %290, 75
br i1 %291, label %292, label %295
292: ; preds = %285
%293 = load i32, i32* %4
%294 = add nsw i32 %293, 2
store i32 %294, i32* %4
br label %295
295: ; preds = %292, %285
%296 = load i32, i32* %5
%297 = sext i32 %296 to i64
%298 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %297
%299 = load i8, i8* %298
%300 = sext i8 %299 to i32
%301 = icmp eq i32 %300, 72
br i1 %301, label %302, label %305
302: ; preds = %295
%303 = load i32, i32* %4
%304 = add nsw i32 %303, 2
store i32 %304, i32* %4
br label %305
305: ; preds = %302, %295
%306 = load i32, i32* %5
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %307
%309 = load i8, i8* %308
%310 = sext i8 %309 to i32
%311 = icmp eq i32 %310, 78
br i1 %311, label %312, label %315
312: ; preds = %305
%313 = load i32, i32* %4
%314 = add nsw i32 %313, 2
store i32 %314, i32* %4
br label %315
315: ; preds = %312, %305
%316 = load i32, i32* %5
%317 = sext i32 %316 to i64
%318 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %317
%319 = load i8, i8* %318
%320 = sext i8 %319 to i32
%321 = icmp eq i32 %320, 81
br i1 %321, label %322, label %325
322: ; preds = %315
%323 = load i32, i32* %4
%324 = add nsw i32 %323, 2
store i32 %324, i32* %4
br label %325
325: ; preds = %322, %315
%326 = load i32, i32* %5
%327 = sext i32 %326 to i64
%328 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %327
%329 = load i8, i8* %328
%330 = sext i8 %329 to i32
%331 = icmp eq i32 %330, 85
br i1 %331, label %332, label %335
332: ; preds = %325
%333 = load i32, i32* %4
%334 = add nsw i32 %333, 2
store i32 %334, i32* %4
br label %335
335: ; preds = %332, %325
%336 = load i32, i32* %5
%337 = sext i32 %336 to i64
%338 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %337
%339 = load i8, i8* %338
%340 = sext i8 %339 to i32
%341 = icmp eq i32 %340, 88
br i1 %341, label %342, label %345
342: ; preds = %335
%343 = load i32, i32* %4
%344 = add nsw i32 %343, 2
store i32 %344, i32* %4
br label %345
345: ; preds = %342, %335
%346 = load i32, i32* %5
%347 = sext i32 %346 to i64
%348 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %347
%349 = load i8, i8* %348
%350 = sext i8 %349 to i32
%351 = icmp eq i32 %350, 99
br i1 %351, label %352, label %355
352: ; preds = %345
%353 = load i32, i32* %4
%354 = add nsw i32 %353, 3
store i32 %354, i32* %4
br label %355
355: ; preds = %352, %345
%356 = load i32, i32* %5
%357 = sext i32 %356 to i64
%358 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %357
%359 = load i8, i8* %358
%360 = sext i8 %359 to i32
%361 = icmp eq i32 %360, 102
br i1 %361, label %362, label %365
362: ; preds = %355
%363 = load i32, i32* %4
%364 = add nsw i32 %363, 3
store i32 %364, i32* %4
br label %365
365: ; preds = %362, %355
%366 = load i32, i32* %5
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %367
%369 = load i8, i8* %368
%370 = sext i8 %369 to i32
%371 = icmp eq i32 %370, 105
br i1 %371, label %372, label %375
372: ; preds = %365
%373 = load i32, i32* %4
%374 = add nsw i32 %373, 3
store i32 %374, i32* %4
br label %375
375: ; preds = %372, %365
%376 = load i32, i32* %5
%377 = sext i32 %376 to i64
%378 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %377
%379 = load i8, i8* %378
%380 = sext i8 %379 to i32
%381 = icmp eq i32 %380, 108
br i1 %381, label %382, label %385
382: ; preds = %375
%383 = load i32, i32* %4
%384 = add nsw i32 %383, 3
store i32 %384, i32* %4
br label %385
385: ; preds = %382, %375
%386 = load i32, i32* %5
%387 = sext i32 %386 to i64
%388 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %387
%389 = load i8, i8* %388
%390 = sext i8 %389 to i32
%391 = icmp eq i32 %390, 111
br i1 %391, label %392, label %395
392: ; preds = %385
%393 = load i32, i32* %4
%394 = add nsw i32 %393, 3
store i32 %394, i32* %4
br label %395
395: ; preds = %392, %385
%396 = load i32, i32* %5
%397 = sext i32 %396 to i64
%398 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %397
%399 = load i8, i8* %398
%400 = sext i8 %399 to i32
%401 = icmp eq i32 %400, 114
br i1 %401, label %402, label %405
402: ; preds = %395
%403 = load i32, i32* %4
%404 = add nsw i32 %403, 3
store i32 %404, i32* %4
br label %405
405: ; preds = %402, %395
%406 = load i32, i32* %5
%407 = sext i32 %406 to i64
%408 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %407
%409 = load i8, i8* %408
%410 = sext i8 %409 to i32
%411 = icmp eq i32 %410, 118
br i1 %411, label %412, label %415
412: ; preds = %405
%413 = load i32, i32* %4
%414 = add nsw i32 %413, 3
store i32 %414, i32* %4
br label %415
415: ; preds = %412, %405
%416 = load i32, i32* %5
%417 = sext i32 %416 to i64
%418 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %417
%419 = load i8, i8* %418
%420 = sext i8 %419 to i32
%421 = icmp eq i32 %420, 121
br i1 %421, label %422, label %425
422: ; preds = %415
%423 = load i32, i32* %4
%424 = add nsw i32 %423, 3
store i32 %424, i32* %4
br label %425
425: ; preds = %422, %415
%426 = load i32, i32* %5
%427 = sext i32 %426 to i64
%428 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %427
%429 = load i8, i8* %428
%430 = sext i8 %429 to i32
%431 = icmp eq i32 %430, 67
br i1 %431, label %432, label %435
432: ; preds = %425
%433 = load i32, i32* %4
%434 = add nsw i32 %433, 3
store i32 %434, i32* %4
br label %435
435: ; preds = %432, %425
%436 = load i32, i32* %5
%437 = sext i32 %436 to i64
%438 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %437
%439 = load i8, i8* %438
%440 = sext i8 %439 to i32
%441 = icmp eq i32 %440, 70
br i1 %441, label %442, label %445
442: ; preds = %435
%443 = load i32, i32* %4
%444 = add nsw i32 %443, 3
store i32 %444, i32* %4
br label %445
445: ; preds = %442, %435
%446 = load i32, i32* %5
%447 = sext i32 %446 to i64
%448 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %447
%449 = load i8, i8* %448
%450 = sext i8 %449 to i32
%451 = icmp eq i32 %450, 73
br i1 %451, label %452, label %455
452: ; preds = %445
%453 = load i32, i32* %4
%454 = add nsw i32 %453, 3
store i32 %454, i32* %4
br label %455
455: ; preds = %452, %445
%456 = load i32, i32* %5
%457 = sext i32 %456 to i64
%458 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %457
%459 = load i8, i8* %458
%460 = sext i8 %459 to i32
%461 = icmp eq i32 %460, 76
br i1 %461, label %462, label %465
462: ; preds = %455
%463 = load i32, i32* %4
%464 = add nsw i32 %463, 3
store i32 %464, i32* %4
br label %465
465: ; preds = %462, %455
%466 = load i32, i32* %5
%467 = sext i32 %466 to i64
%468 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %467
%469 = load i8, i8* %468
%470 = sext i8 %469 to i32
%471 = icmp eq i32 %470, 79
br i1 %471, label %472, label %475
472: ; preds = %465
%473 = load i32, i32* %4
%474 = add nsw i32 %473, 3
store i32 %474, i32* %4
br label %475
475: ; preds = %472, %465
%476 = load i32, i32* %5
%477 = sext i32 %476 to i64
%478 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %477
%479 = load i8, i8* %478
%480 = sext i8 %479 to i32
%481 = icmp eq i32 %480, 82
br i1 %481, label %482, label %485
482: ; preds = %475
%483 = load i32, i32* %4
%484 = add nsw i32 %483, 3
store i32 %484, i32* %4
br label %485
485: ; preds = %482, %475
%486 = load i32, i32* %5
%487 = sext i32 %486 to i64
%488 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %487
%489 = load i8, i8* %488
%490 = sext i8 %489 to i32
%491 = icmp eq i32 %490, 86
br i1 %491, label %492, label %495
492: ; preds = %485
%493 = load i32, i32* %4
%494 = add nsw i32 %493, 3
store i32 %494, i32* %4
br label %495
495: ; preds = %492, %485
%496 = load i32, i32* %5
%497 = sext i32 %496 to i64
%498 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %497
%499 = load i8, i8* %498
%500 = sext i8 %499 to i32
%501 = icmp eq i32 %500, 89
br i1 %501, label %502, label %505
502: ; preds = %495
%503 = load i32, i32* %4
%504 = add nsw i32 %503, 3
store i32 %504, i32* %4
br label %505
505: ; preds = %502, %495
%506 = load i32, i32* %5
%507 = sext i32 %506 to i64
%508 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %507
%509 = load i8, i8* %508
%510 = sext i8 %509 to i32
%511 = icmp eq i32 %510, 115
br i1 %511, label %512, label %515
512: ; preds = %505
%513 = load i32, i32* %4
%514 = add nsw i32 %513, 4
store i32 %514, i32* %4
br label %515
515: ; preds = %512, %505
%516 = load i32, i32* %5
%517 = sext i32 %516 to i64
%518 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %517
%519 = load i8, i8* %518
%520 = sext i8 %519 to i32
%521 = icmp eq i32 %520, 122
br i1 %521, label %522, label %525
522: ; preds = %515
%523 = load i32, i32* %4
%524 = add nsw i32 %523, 4
store i32 %524, i32* %4
br label %525
525: ; preds = %522, %515
%526 = load i32, i32* %5
%527 = sext i32 %526 to i64
%528 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %527
%529 = load i8, i8* %528
%530 = sext i8 %529 to i32
%531 = icmp eq i32 %530, 83
br i1 %531, label %532, label %535
532: ; preds = %525
%533 = load i32, i32* %4
%534 = add nsw i32 %533, 4
store i32 %534, i32* %4
br label %535
535: ; preds = %532, %525
%536 = load i32, i32* %5
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds [200 x i8], [200 x i8]* %2, i64 0, i64 %537
%539 = load i8, i8* %538
%540 = sext i8 %539 to i32
%541 = icmp eq i32 %540, 90
br i1 %541, label %542, label %545
542: ; preds = %535
%543 = load i32, i32* %4
%544 = add nsw i32 %543, 4
store i32 %544, i32* %4
br label %545
545: ; preds = %542, %535
br label %546
546: ; preds = %545
%547 = load i32, i32* %5
%548 = add nsw i32 %547, 1
store i32 %548, i32* %5
br label %10
549: ; preds = %10
%550 = load i32, i32* %4
%551 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %550)
ret i32 0
}

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