#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*/ fgets(char *, int, int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *, int);
int /*<<< orphan*/ stdin;
int main() {
  char ch[1000];
  fgets(ch, 1000, stdin);
  int i = 0;
  int a, b, c, d, e, f, g, h, iq, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x,
      y, z;
  a = b = c = d = e = f = g = h = iq = j = k = l = m = n = o = p = q = r = s =
      t = u = v = w = x = y = z = 0;
  do {
    if (ch[i] == 'a' || ch[i] == 'A') {
      a++;
    }
    if (ch[i] == 'b' || ch[i] == 'B') {
      b++;
    }
    if (ch[i] == 'c' || ch[i] == 'C') {
      c++;
    }
    if (ch[i] == 'd' || ch[i] == 'D') {
      d++;
    }
    if (ch[i] == 'e' || ch[i] == 'E') {
      e++;
    }
    if (ch[i] == 'f' || ch[i] == 'F') {
      f++;
    }
    if (ch[i] == 'g' || ch[i] == 'G') {
      g++;
    }
    if (ch[i] == 'h' || ch[i] == 'H') {
      h++;
    }
    if (ch[i] == 'i' || ch[i] == 'I') {
      iq++;
    }
    if (ch[i] == 'j' || ch[i] == 'J') {
      j++;
    }
    if (ch[i] == 'k' || ch[i] == 'K') {
      k++;
    }
    if (ch[i] == 'l' || ch[i] == 'L') {
      l++;
    }
    if (ch[i] == 'm' || ch[i] == 'M') {
      m++;
    }
    if (ch[i] == 'n' || ch[i] == 'N') {
      n++;
    }
    if (ch[i] == 'o' || ch[i] == 'O') {
      o++;
    }
    if (ch[i] == 'p' || ch[i] == 'P') {
      p++;
    }
    if (ch[i] == 'q' || ch[i] == 'Q') {
      q++;
    }
    if (ch[i] == 'r' || ch[i] == 'R') {
      r++;
    }
    if (ch[i] == 's' || ch[i] == 'S') {
      s++;
    }
    if (ch[i] == 't' || ch[i] == 'T') {
      t++;
    }
    if (ch[i] == 'u' || ch[i] == 'U') {
      u++;
    }
    if (ch[i] == 'v' || ch[i] == 'V') {
      v++;
    }
    if (ch[i] == 'w' || ch[i] == 'W') {
      w++;
    }
    if (ch[i] == 'x' || ch[i] == 'X') {
      x++;
    }
    if (ch[i] == 'y' || ch[i] == 'Y') {
      y++;
    }
    if (ch[i] == 'z' || ch[i] == 'Z') {
      z++;
    }
    i++;
  } while (ch[i] != '\0');
  if (a > 0) {
    printf("a - %d", a);
  };
  if (b > 0) {
    printf("\nb - %d", b);
  };
  if (c > 0) {
    printf("\nc - %d", c);
  };
  if (d > 0) {
    printf("\nd - %d", d);
  };
  if (e > 0) {
    printf("\ne - %d", e);
  };
  if (f > 0) {
    printf("\nf - %d", f);
  };
  if (g > 0) {
    printf("\ng - %d", g);
  };
  if (h > 0) {
    printf("\nh - %d", h);
  };
  if (iq > 0) {
    printf("\ni - %d", iq);
  };
  if (j > 0) {
    printf("\nj - %d", j);
  };
  if (k > 0) {
    printf("\nk - %d", k);
  };
  if (l > 0) {
    printf("\nl - %d", l);
  };
  if (m > 0) {
    printf("\nm - %d", m);
  };
  if (n > 0) {
    printf("\nn - %d", n);
  };
  if (o > 0) {
    printf("\no - %d", o);
  };
  if (p > 0) {
    printf("\np - %d", p);
  };
  if (q > 0) {
    printf("\nq - %d", q);
  };
  if (r > 0) {
    printf("\nr - %d", r);
  };
  if (s > 0) {
    printf("\ns - %d", s);
  };
  if (t > 0) {
    printf("\nt - %d", t);
  };
  if (u > 0) {
    printf("\nu - %d", u);
  };
  if (v > 0) {
    printf("\nv - %d", v);
  };
  if (w > 0) {
    printf("\nw - %d", w);
  };
  if (x > 0) {
    printf("\nx - %d", x);
  };
  if (y > 0) {
    printf("\ny - %d", y);
  };
  if (z > 0) {
    printf("\nz - %d", z);
  };
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x460,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x3f0(%rbp),%rdi
mov    0x2ea8(%rip),%rax
mov    (%rax),%edx
mov    $0x3e8,%esi
call   1040 <fgets@plt>
movl   $0x0,-0x3f4(%rbp)
movl   $0x0,-0x45c(%rbp)
movl   $0x0,-0x458(%rbp)
movl   $0x0,-0x454(%rbp)
movl   $0x0,-0x450(%rbp)
movl   $0x0,-0x44c(%rbp)
movl   $0x0,-0x448(%rbp)
movl   $0x0,-0x444(%rbp)
movl   $0x0,-0x440(%rbp)
movl   $0x0,-0x43c(%rbp)
movl   $0x0,-0x438(%rbp)
movl   $0x0,-0x434(%rbp)
movl   $0x0,-0x430(%rbp)
movl   $0x0,-0x42c(%rbp)
movl   $0x0,-0x428(%rbp)
movl   $0x0,-0x424(%rbp)
movl   $0x0,-0x420(%rbp)
movl   $0x0,-0x41c(%rbp)
movl   $0x0,-0x418(%rbp)
movl   $0x0,-0x414(%rbp)
movl   $0x0,-0x410(%rbp)
movl   $0x0,-0x40c(%rbp)
movl   $0x0,-0x408(%rbp)
movl   $0x0,-0x404(%rbp)
movl   $0x0,-0x400(%rbp)
movl   $0x0,-0x3fc(%rbp)
movl   $0x0,-0x3f8(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x61,%eax
je     128a <main+0x16a>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x41,%eax
jne    1299 <main+0x179>
mov    -0x3f8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3f8(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x62,%eax
je     12c9 <main+0x1a9>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x42,%eax
jne    12d8 <main+0x1b8>
mov    -0x3fc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x63,%eax
je     1308 <main+0x1e8>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
jne    1317 <main+0x1f7>
mov    -0x400(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x400(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x64,%eax
je     1347 <main+0x227>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x44,%eax
jne    1356 <main+0x236>
mov    -0x404(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x404(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x65,%eax
je     1386 <main+0x266>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x45,%eax
jne    1395 <main+0x275>
mov    -0x408(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x408(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x66,%eax
je     13c5 <main+0x2a5>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x46,%eax
jne    13d4 <main+0x2b4>
mov    -0x40c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40c(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x67,%eax
je     1404 <main+0x2e4>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x47,%eax
jne    1413 <main+0x2f3>
mov    -0x410(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x410(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x68,%eax
je     1443 <main+0x323>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x48,%eax
jne    1452 <main+0x332>
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x69,%eax
je     1482 <main+0x362>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    1491 <main+0x371>
mov    -0x418(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x418(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x6a,%eax
je     14c1 <main+0x3a1>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4a,%eax
jne    14d0 <main+0x3b0>
mov    -0x41c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x41c(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x6b,%eax
je     1500 <main+0x3e0>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4b,%eax
jne    150f <main+0x3ef>
mov    -0x420(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x420(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x6c,%eax
je     153f <main+0x41f>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
jne    154e <main+0x42e>
mov    -0x424(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x424(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x6d,%eax
je     157e <main+0x45e>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4d,%eax
jne    158d <main+0x46d>
mov    -0x428(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x428(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x6e,%eax
je     15bd <main+0x49d>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4e,%eax
jne    15cc <main+0x4ac>
mov    -0x42c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x42c(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x6f,%eax
je     15fc <main+0x4dc>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4f,%eax
jne    160b <main+0x4eb>
mov    -0x430(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x430(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x70,%eax
je     163b <main+0x51b>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x50,%eax
jne    164a <main+0x52a>
mov    -0x434(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x434(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x71,%eax
je     167a <main+0x55a>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x51,%eax
jne    1689 <main+0x569>
mov    -0x438(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x438(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x72,%eax
je     16b9 <main+0x599>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x52,%eax
jne    16c8 <main+0x5a8>
mov    -0x43c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x43c(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x73,%eax
je     16f8 <main+0x5d8>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x53,%eax
jne    1707 <main+0x5e7>
mov    -0x440(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x440(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x74,%eax
je     1737 <main+0x617>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x54,%eax
jne    1746 <main+0x626>
mov    -0x444(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x444(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x75,%eax
je     1776 <main+0x656>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x55,%eax
jne    1785 <main+0x665>
mov    -0x448(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x448(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x76,%eax
je     17b5 <main+0x695>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
jne    17c4 <main+0x6a4>
mov    -0x44c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44c(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x77,%eax
je     17f4 <main+0x6d4>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x57,%eax
jne    1803 <main+0x6e3>
mov    -0x450(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x450(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x78,%eax
je     1833 <main+0x713>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
jne    1842 <main+0x722>
mov    -0x454(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x454(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x79,%eax
je     1872 <main+0x752>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x59,%eax
jne    1881 <main+0x761>
mov    -0x458(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x458(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x7a,%eax
je     18b1 <main+0x791>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x5a,%eax
jne    18c0 <main+0x7a0>
mov    -0x45c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x45c(%rbp)
mov    -0x3f4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3f4(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x0,%eax
jne    125a <main+0x13a>
cmpl   $0x0,-0x3f8(%rbp)
jle    1906 <main+0x7e6>
mov    -0x3f8(%rbp),%esi
lea    0x6ff(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x3fc(%rbp)
jle    1925 <main+0x805>
mov    -0x3fc(%rbp),%esi
lea    0x6e7(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x400(%rbp)
jle    1944 <main+0x824>
mov    -0x400(%rbp),%esi
lea    0x6d0(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x404(%rbp)
jle    1963 <main+0x843>
mov    -0x404(%rbp),%esi
lea    0x6b9(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x408(%rbp)
jle    1982 <main+0x862>
mov    -0x408(%rbp),%esi
lea    0x6a2(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x40c(%rbp)
jle    19a1 <main+0x881>
mov    -0x40c(%rbp),%esi
lea    0x68b(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x410(%rbp)
jle    19c0 <main+0x8a0>
mov    -0x410(%rbp),%esi
lea    0x674(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x414(%rbp)
jle    19df <main+0x8bf>
mov    -0x414(%rbp),%esi
lea    0x65d(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x418(%rbp)
jle    19fe <main+0x8de>
mov    -0x418(%rbp),%esi
lea    0x646(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x41c(%rbp)
jle    1a1d <main+0x8fd>
mov    -0x41c(%rbp),%esi
lea    0x62f(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x420(%rbp)
jle    1a3c <main+0x91c>
mov    -0x420(%rbp),%esi
lea    0x618(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x424(%rbp)
jle    1a5b <main+0x93b>
mov    -0x424(%rbp),%esi
lea    0x601(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x428(%rbp)
jle    1a7a <main+0x95a>
mov    -0x428(%rbp),%esi
lea    0x5ea(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x42c(%rbp)
jle    1a99 <main+0x979>
mov    -0x42c(%rbp),%esi
lea    0x5d3(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x430(%rbp)
jle    1ab8 <main+0x998>
mov    -0x430(%rbp),%esi
lea    0x5bc(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x434(%rbp)
jle    1ad7 <main+0x9b7>
mov    -0x434(%rbp),%esi
lea    0x5a5(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x438(%rbp)
jle    1af6 <main+0x9d6>
mov    -0x438(%rbp),%esi
lea    0x58e(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x43c(%rbp)
jle    1b15 <main+0x9f5>
mov    -0x43c(%rbp),%esi
lea    0x577(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x440(%rbp)
jle    1b34 <main+0xa14>
mov    -0x440(%rbp),%esi
lea    0x560(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x444(%rbp)
jle    1b53 <main+0xa33>
mov    -0x444(%rbp),%esi
lea    0x549(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x448(%rbp)
jle    1b72 <main+0xa52>
mov    -0x448(%rbp),%esi
lea    0x532(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x44c(%rbp)
jle    1b91 <main+0xa71>
mov    -0x44c(%rbp),%esi
lea    0x51b(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x450(%rbp)
jle    1bb0 <main+0xa90>
mov    -0x450(%rbp),%esi
lea    0x504(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x454(%rbp)
jle    1bcf <main+0xaaf>
mov    -0x454(%rbp),%esi
lea    0x4ed(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x458(%rbp)
jle    1bee <main+0xace>
mov    -0x458(%rbp),%esi
lea    0x4d6(%rip),%rdi
call   1030 <printf@plt>
cmpl   $0x0,-0x45c(%rbp)
jle    1c0d <main+0xaed>
mov    -0x45c(%rbp),%esi
lea    0x4bf(%rip),%rdi
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x460,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x438,%rsp
mov    0x2eb0(%rip),%rax
mov    (%rax),%edx
lea    0x50(%rsp),%rdi
mov    $0x3e8,%esi
call   1040 <fgets@plt>
mov    0x50(%rsp),%cl
lea    0x51(%rsp),%rax
xor    %esi,%esi
xor    %r14d,%r14d
xor    %r12d,%r12d
xor    %r15d,%r15d
xor    %r13d,%r13d
movl   $0x0,0x8(%rsp)
movl   $0x0,0xc(%rsp)
movl   $0x0,0x10(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x0,0x18(%rsp)
movl   $0x0,0x1c(%rsp)
movl   $0x0,0x20(%rsp)
movl   $0x0,0x24(%rsp)
movl   $0x0,0x28(%rsp)
movl   $0x0,0x2c(%rsp)
movl   $0x0,0x30(%rsp)
movl   $0x0,0x34(%rsp)
movl   $0x0,0x38(%rsp)
xor    %r11d,%r11d
xor    %r10d,%r10d
xor    %r9d,%r9d
xor    %r8d,%r8d
xor    %ebp,%ebp
xor    %ebx,%ebx
xor    %edi,%edi
xor    %edx,%edx
jmp    11ef <main+0xcf>
xchg   %ax,%ax
movzbl (%rax),%ecx
add    $0x1,%rax
test   %cl,%cl
je     12ed <main+0x1cd>
or     $0x20,%cl
cmp    $0x61,%cl
jne    11fa <main+0xda>
add    $0x1,%esi
cmp    $0x62,%cl
jne    1203 <main+0xe3>
add    $0x1,%r14d
cmp    $0x63,%cl
jne    120c <main+0xec>
add    $0x1,%r12d
cmp    $0x64,%cl
jne    1215 <main+0xf5>
add    $0x1,%r15d
cmp    $0x65,%cl
jne    121e <main+0xfe>
add    $0x1,%r13d
cmp    $0x66,%cl
jne    1228 <main+0x108>
addl   $0x1,0x8(%rsp)
cmp    $0x67,%cl
jne    1232 <main+0x112>
addl   $0x1,0xc(%rsp)
cmp    $0x68,%cl
jne    123c <main+0x11c>
addl   $0x1,0x10(%rsp)
cmp    $0x69,%cl
jne    1246 <main+0x126>
addl   $0x1,0x14(%rsp)
cmp    $0x6a,%cl
jne    1250 <main+0x130>
addl   $0x1,0x18(%rsp)
cmp    $0x6b,%cl
jne    125a <main+0x13a>
addl   $0x1,0x1c(%rsp)
cmp    $0x6c,%cl
jne    1264 <main+0x144>
addl   $0x1,0x20(%rsp)
cmp    $0x6d,%cl
jne    126e <main+0x14e>
addl   $0x1,0x24(%rsp)
cmp    $0x6e,%cl
jne    1278 <main+0x158>
addl   $0x1,0x28(%rsp)
cmp    $0x6f,%cl
jne    1282 <main+0x162>
addl   $0x1,0x2c(%rsp)
cmp    $0x70,%cl
jne    128c <main+0x16c>
addl   $0x1,0x30(%rsp)
cmp    $0x71,%cl
jne    1296 <main+0x176>
addl   $0x1,0x34(%rsp)
cmp    $0x72,%cl
jne    12a0 <main+0x180>
addl   $0x1,0x38(%rsp)
cmp    $0x73,%cl
jne    12a9 <main+0x189>
add    $0x1,%r11d
cmp    $0x74,%cl
jne    12b2 <main+0x192>
add    $0x1,%r10d
cmp    $0x75,%cl
jne    12bb <main+0x19b>
add    $0x1,%r9d
cmp    $0x76,%cl
jne    12c4 <main+0x1a4>
add    $0x1,%r8d
cmp    $0x77,%cl
jne    12cc <main+0x1ac>
add    $0x1,%ebp
cmp    $0x78,%cl
jne    12d4 <main+0x1b4>
add    $0x1,%ebx
cmp    $0x79,%cl
jne    12dc <main+0x1bc>
add    $0x1,%edi
cmp    $0x7a,%cl
jne    11e0 <main+0xc0>
add    $0x1,%edx
jmp    11e0 <main+0xc0>
mov    %r11d,0x3c(%rsp)
mov    %r10d,0x40(%rsp)
mov    %r9d,0x44(%rsp)
mov    %r8d,0x48(%rsp)
mov    %edi,0x4c(%rsp)
test   %esi,%esi
mov    %edx,0x4(%rsp)
jle    131d <main+0x1fd>
lea    0xcec(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %r14d,%r14d
jle    1335 <main+0x215>
lea    0xcde(%rip),%rdi
mov    %r14d,%esi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %r12d,%r12d
jle    134d <main+0x22d>
lea    0xcce(%rip),%rdi
mov    %r12d,%esi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %r15d,%r15d
jle    1365 <main+0x245>
lea    0xcbe(%rip),%rdi
mov    %r15d,%esi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %r13d,%r13d
jle    137d <main+0x25d>
lea    0xcae(%rip),%rdi
mov    %r13d,%esi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x8(%rsp),%esi
test   %esi,%esi
jle    1395 <main+0x275>
lea    0xc9b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0xc(%rsp),%esi
test   %esi,%esi
jle    13ad <main+0x28d>
lea    0xc8b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x10(%rsp),%esi
test   %esi,%esi
jle    13c5 <main+0x2a5>
lea    0xc7b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x14(%rsp),%esi
test   %esi,%esi
jle    13dd <main+0x2bd>
lea    0xc6b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x18(%rsp),%esi
test   %esi,%esi
jle    13f5 <main+0x2d5>
lea    0xc5b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x1c(%rsp),%esi
test   %esi,%esi
jle    140d <main+0x2ed>
lea    0xc4b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x20(%rsp),%esi
test   %esi,%esi
jle    1425 <main+0x305>
lea    0xc3b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x24(%rsp),%esi
test   %esi,%esi
jle    143d <main+0x31d>
lea    0xc2b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x28(%rsp),%esi
test   %esi,%esi
jle    1455 <main+0x335>
lea    0xc1b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x2c(%rsp),%esi
test   %esi,%esi
jle    146d <main+0x34d>
lea    0xc0b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x30(%rsp),%esi
test   %esi,%esi
jle    1485 <main+0x365>
lea    0xbfb(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x34(%rsp),%esi
test   %esi,%esi
jle    149d <main+0x37d>
lea    0xbeb(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x38(%rsp),%esi
test   %esi,%esi
jle    14b5 <main+0x395>
lea    0xbdb(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x3c(%rsp),%esi
test   %esi,%esi
jle    14cd <main+0x3ad>
lea    0xbcb(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x40(%rsp),%esi
test   %esi,%esi
jle    14e5 <main+0x3c5>
lea    0xbbb(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x44(%rsp),%esi
test   %esi,%esi
jle    14fd <main+0x3dd>
lea    0xbab(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x48(%rsp),%esi
test   %esi,%esi
jle    1515 <main+0x3f5>
lea    0xb9b(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %ebp,%ebp
jle    152b <main+0x40b>
mov    %ebp,%esi
lea    0xb8d(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %ebx,%ebx
jle    1541 <main+0x421>
mov    %ebx,%esi
lea    0xb7f(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
mov    0x4c(%rsp),%esi
test   %esi,%esi
jle    1559 <main+0x439>
lea    0xb6f(%rip),%rdi
call   1030 <printf@plt>
mov    0x4(%rsp),%edx
test   %edx,%edx
jle    156b <main+0x44b>
lea    0xb63(%rip),%rdi
mov    %edx,%esi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x438,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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