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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ scanf(char *, ...);
main() {
  char s[100], e[300], ch[400];
  int i = 0, j = 0, k = 0, t, l;
  scanf("%d", &t);
  for (l = 0; l < t; l++) {
    scanf("%s", ch);
    while (ch[i] != '\0') {
      if (i != 0) {
        if (ch[i] == '+' || ch[i] == '-' || ch[i] == '*' || ch[i] == '/' ||
            ch[i] == '^' || ch[i] == '(' || ch[i] == ')') {
          if ((ch[i] == '+' || ch[i] == '-') &&
              (s[j - 1] == '*' || s[j - 1] == '/' || s[j - 1] == '^')) {
            while (s[j - 1] != '+' || s[j - 1] == '-' || s[j - 1] == '(') {
              e[k] = s[j - 1];
              j--;
              k++;
            }
            s[j] = ch[i];
            j++;
          }
          if ((ch[i] == '*' || ch[i] == '/') && s[j - 1] == '^') {
            while (s[j - 1] != '+' || s[j - 1] != '-' || s[j - 1] == '(') {
              e[k] = s[j - 1];
              j--;
              k++;
            }
            s[j] = ch[i];
            j++;
          }
          if ((ch[i] == '+' || ch[i] == '-') &&
              (s[j - 1] != '*' || s[j - 1] != '/' || s[j - 1] != '^')) {
            s[j] = ch[i];
            j++;
          }
          if ((ch[i] == '*' || ch[i] == '/') && s[j - 1] != '^') {
            s[j] = ch[i];
            j++;
          }
          if (ch[i] == '(') {
            s[j] = ch[i];
            j++;
          }
          if (ch[i] == '^') {
            s[j] = ch[i];
            j++;
          }
          if (ch[i] == ')') {
            while (s[j - 1] != '(') {
              e[k] = s[j - 1];
              k++;
              j--;
            }
            j--;
          }
        } else {
          e[k] = ch[i];
          k++;
        }
      } else {
        if (ch[i] == '+' || ch[i] == '-' || ch[i] == '*' || ch[i] == '/' ||
            ch[i] == '^' || ch[i] == '(' || ch[i] == ')') {
          s[j] = ch[i];
          j++;
        } else {
          e[k] = ch[i];
          k++;
        }
      }
      i++;
    }
    for (i = 0; i < k; i++)
      printf("%c", e[i]);
    i = 0;
    j = 0;
    k = 0;
    printf("\n");
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x350,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x334(%rbp)
movl   $0x0,-0x338(%rbp)
movl   $0x0,-0x33c(%rbp)
lea    0xea9(%rip),%rdi
lea    -0x340(%rbp),%rsi
mov    $0x0,%al
call   1040 <scanf@plt>
movl   $0x0,-0x344(%rbp)
mov    -0x344(%rbp),%eax
cmp    -0x340(%rbp),%eax
jge    18d7 <main+0x7b7>
lea    -0x330(%rbp),%rsi
lea    0xe74(%rip),%rdi
mov    $0x0,%al
call   1040 <scanf@plt>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x0,%eax
je     184a <main+0x72a>
cmpl   $0x0,-0x334(%rbp)
je     1731 <main+0x611>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2b,%eax
je     1263 <main+0x143>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2d,%eax
je     1263 <main+0x143>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2a,%eax
je     1263 <main+0x143>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2f,%eax
je     1263 <main+0x143>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x5e,%eax
je     1263 <main+0x143>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x28,%eax
je     1263 <main+0x143>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x29,%eax
jne    1701 <main+0x5e1>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2b,%eax
je     1293 <main+0x173>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2d,%eax
jne    13bc <main+0x29c>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x2a,%eax
je     12de <main+0x1be>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x2f,%eax
je     12de <main+0x1be>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x5e,%eax
jne    13bc <main+0x29c>
jmp    12e3 <main+0x1c3>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%ecx
mov    $0x1,%al
cmp    $0x2b,%ecx
mov    %al,-0x345(%rbp)
jne    1341 <main+0x221>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%ecx
mov    $0x1,%al
cmp    $0x2d,%ecx
mov    %al,-0x345(%rbp)
je     1341 <main+0x221>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x28,%eax
sete   %al
mov    %al,-0x345(%rbp)
mov    -0x345(%rbp),%al
test   $0x1,%al
jne    1354 <main+0x234>
jmp    1394 <main+0x274>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x70(%rbp,%rax,1),%cl
movslq -0x33c(%rbp),%rax
mov    %cl,-0x1a0(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x338(%rbp)
mov    -0x33c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x33c(%rbp)
jmp    12e3 <main+0x1c3>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2a,%eax
je     13ec <main+0x2cc>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2f,%eax
jne    14e3 <main+0x3c3>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x5e,%eax
jne    14e3 <main+0x3c3>
jmp    140a <main+0x2ea>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%ecx
mov    $0x1,%al
cmp    $0x2b,%ecx
mov    %al,-0x346(%rbp)
jne    1468 <main+0x348>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%ecx
mov    $0x1,%al
cmp    $0x2d,%ecx
mov    %al,-0x346(%rbp)
jne    1468 <main+0x348>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x28,%eax
sete   %al
mov    %al,-0x346(%rbp)
mov    -0x346(%rbp),%al
test   $0x1,%al
jne    147b <main+0x35b>
jmp    14bb <main+0x39b>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x70(%rbp,%rax,1),%cl
movslq -0x33c(%rbp),%rax
mov    %cl,-0x1a0(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x338(%rbp)
mov    -0x33c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x33c(%rbp)
jmp    140a <main+0x2ea>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2b,%eax
je     1513 <main+0x3f3>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2d,%eax
jne    1586 <main+0x466>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x2a,%eax
jne    155e <main+0x43e>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x2f,%eax
jne    155e <main+0x43e>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x5e,%eax
je     1586 <main+0x466>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2a,%eax
je     15b6 <main+0x496>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2f,%eax
jne    15f7 <main+0x4d7>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x5e,%eax
je     15f7 <main+0x4d7>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x28,%eax
jne    1637 <main+0x517>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x5e,%eax
jne    1677 <main+0x557>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x29,%eax
jne    16fc <main+0x5dc>
jmp    1694 <main+0x574>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x28,%eax
je     16ed <main+0x5cd>
mov    -0x338(%rbp),%eax
sub    $0x1,%eax
cltq
mov    -0x70(%rbp,%rax,1),%cl
movslq -0x33c(%rbp),%rax
mov    %cl,-0x1a0(%rbp,%rax,1)
mov    -0x33c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x33c(%rbp)
mov    -0x338(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x338(%rbp)
jmp    1694 <main+0x574>
mov    -0x338(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x338(%rbp)
jmp    172c <main+0x60c>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x33c(%rbp),%rax
mov    %cl,-0x1a0(%rbp,%rax,1)
mov    -0x33c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x33c(%rbp)
jmp    1836 <main+0x716>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2b,%eax
je     17d9 <main+0x6b9>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2d,%eax
je     17d9 <main+0x6b9>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2a,%eax
je     17d9 <main+0x6b9>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x2f,%eax
je     17d9 <main+0x6b9>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x5e,%eax
je     17d9 <main+0x6b9>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x28,%eax
je     17d9 <main+0x6b9>
movslq -0x334(%rbp),%rax
movsbl -0x330(%rbp,%rax,1),%eax
ff
cmp    $0x29,%eax
jne    1806 <main+0x6e6>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x338(%rbp),%rax
mov    %cl,-0x70(%rbp,%rax,1)
mov    -0x338(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x338(%rbp)
jmp    1831 <main+0x711>
movslq -0x334(%rbp),%rax
mov    -0x330(%rbp,%rax,1),%cl
movslq -0x33c(%rbp),%rax
mov    %cl,-0x1a0(%rbp,%rax,1)
mov    -0x33c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x33c(%rbp)
jmp    1836 <main+0x716>
mov    -0x334(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x334(%rbp)
jmp    1196 <main+0x76>
movl   $0x0,-0x334(%rbp)
mov    -0x334(%rbp),%eax
cmp    -0x33c(%rbp),%eax
jge    1897 <main+0x777>
movslq -0x334(%rbp),%rax
movsbl -0x1a0(%rbp,%rax,1),%esi
ff
lea    0x78a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x334(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x334(%rbp)
jmp    1854 <main+0x734>
movl   $0x0,-0x334(%rbp)
movl   $0x0,-0x338(%rbp)
movl   $0x0,-0x33c(%rbp)
lea    0x74d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x344(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x344(%rbp)
jmp    116f <main+0x4f>
xor    %eax,%eax
add    $0x350,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x348,%rsp
lea    0xf00(%rip),%rdi
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1040 <scanf@plt>
cmpl   $0x0,0x8(%rsp)
jle    143b <main+0x31b>
lea    0xec2(%rip),%r14
lea    0xea3(%rip),%r15
movabs $0xffffffff00000000,%r12
ff ff ff
xor    %eax,%eax
movabs $0x10000000000021,%r13
jmp    119b <main+0x7b>
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    0xc(%rsp),%eax
add    $0x1,%eax
cmp    0x8(%rsp),%eax
jge    143b <main+0x31b>
mov    %eax,0xc(%rsp)
lea    0xe95(%rip),%rdi
lea    0x1b0(%rsp),%rsi
xor    %eax,%eax
call   1040 <scanf@plt>
mov    0x1b0(%rsp),%sil
test   %sil,%sil
je     1180 <main+0x60>
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %r10d,%r10d
movabs $0x400000000000af,%rbx
movabs $0x40000000000087,%rbp
lea    0x10(%rsp),%rdi
jmp    1215 <main+0xf5>
movslq %r8d,%rax
mov    %sil,0x80(%rsp,%rax,1)
add    $0x1,%r8d
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    0x1b1(%rsp,%rcx,1),%sil
add    $0x1,%rcx
test   %sil,%sil
je     1410 <main+0x2f0>
test   %rcx,%rcx
je     12e0 <main+0x1c0>
lea    -0x28(%rsi),%r11d
cmp    $0x36,%r11b
ja     11e5 <main+0xc5>
movzbl %r11b,%r9d
bt     %r9,%rbp
jb     1310 <main+0x1f0>
mov    $0x28,%eax
bt     %r9,%rax
jae    11e5 <main+0xc5>
movslq %r10d,%rbp
mov    0xf(%rsp,%rbp,1),%al
lea    -0x2a(%rax),%edx
cmp    $0x34,%dl
ja     12fd <main+0x1dd>
movzbl %dl,%edx
bt     %rdx,%r13
jae    12fd <main+0x1dd>
add    $0xffffffffffffffff,%rbp
movslq %r8d,%rdx
add    %rsp,%rdx
add    $0x80,%rdx
lea    0xf(%rsp),%rdi
lea    (%rdi,%rbp,1),%rbx
shl    $0x20,%rbp
movabs $0x100000000,%rdi
add    %rdi,%rbp
xor    %edi,%edi
xchg   %ax,%ax
add    %r12,%rbp
mov    %al,(%rdx)
movzbl (%rbx,%rdi,1),%eax
add    $0x1,%rdx
add    $0xffffffffffffffff,%rdi
cmp    $0x2b,%al
jne    1290 <main+0x170>
sub    %edi,%r8d
sar    $0x20,%rbp
mov    %sil,0x10(%rsp,%rbp,1)
add    %edi,%r10d
add    $0x1,%r10d
movabs $0x400000000000af,%rbx
movabs $0x40000000000087,%rbp
lea    0x10(%rsp),%rdi
jmp    1310 <main+0x1f0>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    -0x28(%rsi),%eax
cmp    $0x36,%al
ja     11e5 <main+0xc5>
movzbl %al,%eax
bt     %rax,%rbx
jae    11e5 <main+0xc5>
movslq %r10d,%rax
jmp    1368 <main+0x248>
movabs $0x40000000000087,%rbp
nopw   0x0(%rax,%rax,1)
lea    -0x2a(%rsi),%eax
cmp    $0x5,%al
ja     134b <main+0x22b>
movzbl %al,%eax
movslq (%r15,%rax,4),%rdx
add    %r15,%rdx
movslq %r10d,%rax
jmp    *%rdx
cmpb   $0x5e,-0x1(%rax,%rdi,1)
je     144f <main+0x32f>
cmp    $0x2d,%sil
je     1340 <main+0x220>
cmp    $0x2b,%sil
jne    134b <main+0x22b>
nopl   (%rax)
mov    %sil,0x10(%rsp,%rax,1)
add    $0x1,%eax
mov    %eax,%r10d
cmp    $0x7,%r11b
ja     1376 <main+0x256>
movslq (%r14,%r9,4),%rax
add    %r14,%rax
jmp    *%rax
movslq %r10d,%rax
cmpb   $0x5e,-0x1(%rax,%rdi,1)
je     1200 <main+0xe0>
mov    %sil,0x10(%rsp,%rax,1)
add    $0x1,%r10d
jmp    1200 <main+0xe0>
cmp    $0x5e,%sil
jne    1200 <main+0xe0>
movslq %r10d,%rax
movb   $0x5e,0x10(%rsp,%rax,1)
add    $0x1,%r10d
jmp    1200 <main+0xe0>
movslq %r10d,%rax
movb   $0x28,0x10(%rsp,%rax,1)
add    $0x1,%r10d
jmp    1200 <main+0xe0>
movslq %r10d,%r10
mov    0xf(%rsp,%r10,1),%al
add    $0xffffffffffffffff,%r10
cmp    $0x28,%al
je     1200 <main+0xe0>
movslq %r8d,%rdx
lea    (%rsp,%rdx,1),%rsi
add    $0x80,%rsi
mov    %r10,%rdi
lea    0xf(%rsp),%rdx
add    %rdx,%rdi
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    %al,(%rsi)
movzbl (%rdi,%rdx,1),%eax
add    $0x1,%rsi
add    $0xffffffffffffffff,%rdx
cmp    $0x28,%al
jne    13e0 <main+0x2c0>
sub    %edx,%r8d
add    %r10d,%edx
mov    %edx,%r10d
lea    0x10(%rsp),%rdi
jmp    1200 <main+0xe0>
cs nopw 0x0(%rax,%rax,1)
nop
test   %r8d,%r8d
jle    1180 <main+0x60>
mov    %r8d,%ebx
xor    %ebp,%ebp
xchg   %ax,%ax
movsbl 0x80(%rsp,%rbp,1),%edi
call   1030 <putchar@plt>
add    $0x1,%rbp
cmp    %rbp,%rbx
jne    1420 <main+0x300>
jmp    1180 <main+0x60>
xor    %eax,%eax
add    $0x348,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movslq %r8d,%rcx
add    %rsp,%rcx
add    $0x80,%rcx
add    %rsp,%rax
add    $0xf,%rax
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movzbl (%rax),%edx
mov    %dl,(%rcx)
add    $0x1,%rcx
add    $0xffffffffffffffff,%rax
jmp    1470 <main+0x350>

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

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