#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 *, ...);
int /*<<< orphan*/ strcpy(char *, char *);
int strlen(char *);
int main() {
  char store[130][130];
  int arr[130] = {0};
  char inp[50010];
  int i, j, k, t;
  int count[130] = {0};
  strcpy(store['a'], "bhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdk"
                     "qwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpv");
  strcpy(store['e'], "cjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyfl"
                     "rxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqw");
  strcpy(store['i'], "dkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgm"
                     "syflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrx");
  strcpy(store['o'], "flrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhn"
                     "tzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsy");
  strcpy(store['u'], "gmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjp"
                     "vbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntz");
  strcpy(store['b'], "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae"
                     "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou");
  strcpy(store['c'], "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei"
                     "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua");
  strcpy(store['d'], "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio"
                     "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae");
  strcpy(store['f'], "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou"
                     "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei");
  strcpy(store['g'], "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua"
                     "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio");
  strcpy(store['h'], "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae"
                     "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou");
  strcpy(store['j'], "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei"
                     "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua");
  strcpy(store['k'], "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio"
                     "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae");
  strcpy(store['l'], "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou"
                     "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei");
  strcpy(store['m'], "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua"
                     "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio");
  strcpy(store['n'], "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae"
                     "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou");
  strcpy(store['p'], "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei"
                     "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua");
  strcpy(store['q'], "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio"
                     "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae");
  strcpy(store['r'], "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou"
                     "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei");
  strcpy(store['s'], "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua"
                     "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio");
  strcpy(store['t'], "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae"
                     "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou");
  strcpy(store['v'], "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei"
                     "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua");
  strcpy(store['w'], "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio"
                     "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae");
  strcpy(store['x'], "ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou"
                     "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei");
  strcpy(store['y'], "uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua"
                     "eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio");
  strcpy(store['z'], "aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae"
                     "iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou");
  scanf("%d", &t);
  while (t--) {
    scanf("%s", &inp);
    for (i = 96; i <= 123; i++)
      count[i] = 0;
    int l = strlen(inp);
    for (i = 0; i < l; i++)
      printf("%c", store[inp[i]][(count[inp[i]]++) % 105]);
    printf("\n");
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x109b0,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x4420(%rbp),%rdi
xor    %esi,%esi
mov    $0x208,%edx
call   1060 <memset@plt>
lea    -0x109a0(%rbp),%rdi
xor    %esi,%esi
mov    $0x208,%edx
call   1060 <memset@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3142,%rdi
lea    0xe63(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x334a,%rdi
lea    0xeb3(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3552,%rdi
lea    0xf03(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x385e,%rdi
lea    0xf53(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3b6a,%rdi
lea    0xfa3(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x31c4,%rdi
lea    0xff3(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3246,%rdi
lea    0x1043(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x32c8,%rdi
lea    0x1093(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x33cc,%rdi
lea    0x10e3(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x344e,%rdi
lea    0x1133(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x34d0,%rdi
lea    0xf71(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x35d4,%rdi
lea    0xfc1(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3656,%rdi
lea    0x1011(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x36d8,%rdi
lea    0x1061(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x375a,%rdi
lea    0x10b1(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x37dc,%rdi
lea    0xeef(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x38e0,%rdi
lea    0xf3f(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3962,%rdi
lea    0xf8f(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x39e4,%rdi
lea    0xfdf(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3a66,%rdi
lea    0x102f(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3ae8,%rdi
lea    0xe6d(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3bec,%rdi
lea    0xebd(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3c6e,%rdi
lea    0xf0d(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3cf0,%rdi
lea    0xf5d(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3d72,%rdi
lea    0xfad(%rip),%rsi
call   1030 <strcpy@plt>
lea    -0x4210(%rbp),%rdi
add    $0x3df4,%rdi
lea    0xdeb(%rip),%rsi
call   1030 <strcpy@plt>
lea    0xff1(%rip),%rdi
lea    -0x10790(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
mov    -0x10790(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x10790(%rbp)
cmp    $0x0,%eax
je     1571 <main+0x421>
lea    0xfc5(%rip),%rdi
lea    -0x10780(%rbp),%rsi
mov    $0x0,%al
call   1070 <scanf@plt>
movl   $0x60,-0x10784(%rbp)
cmpl   $0x7b,-0x10784(%rbp)
jg     14ad <main+0x35d>
movslq -0x10784(%rbp),%rax
movl   $0x0,-0x109a0(%rbp,%rax,4)
mov    -0x10784(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10784(%rbp)
jmp    147a <main+0x32a>
lea    -0x10780(%rbp),%rdi
call   1040 <strlen@plt>
mov    %eax,-0x109a4(%rbp)
movl   $0x0,-0x10784(%rbp)
mov    -0x10784(%rbp),%eax
cmp    -0x109a4(%rbp),%eax
jge    155e <main+0x40e>
movslq -0x10784(%rbp),%rax
movsbq -0x10780(%rbp,%rax,1),%rcx
fe ff
lea    -0x4210(%rbp),%rax
imul   $0x82,%rcx,%rcx
add    %rcx,%rax
mov    %rax,-0x109b0(%rbp)
movslq -0x10784(%rbp),%rax
movsbq -0x10780(%rbp,%rax,1),%rcx
fe ff
mov    -0x109a0(%rbp,%rcx,4),%eax
mov    %eax,%edx
add    $0x1,%edx
mov    %edx,-0x109a0(%rbp,%rcx,4)
mov    $0x69,%ecx
cltd
idiv   %ecx
mov    -0x109b0(%rbp),%rax
movslq %edx,%rcx
movsbl (%rax,%rcx,1),%esi
lea    0xee7(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x10784(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10784(%rbp)
jmp    14c9 <main+0x379>
lea    0xec8(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
jmp    1441 <main+0x2f1>
xor    %eax,%eax
add    $0x109b0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x10790,%rsp
lea    0x10(%rsp),%rdi
mov    $0x208,%edx
xor    %esi,%esi
call   1060 <memset@plt>
lea    0x3362(%rsp),%rdi
lea    0xe80(%rip),%rsi
call   1040 <strcpy@plt>
lea    0x356a(%rsp),%rdi
lea    0xed6(%rip),%rsi
call   1040 <strcpy@plt>
lea    0x3772(%rsp),%rdi
lea    0xf2c(%rip),%rsi
call   1040 <strcpy@plt>
lea    0x3a7e(%rsp),%rdi
lea    0xf82(%rip),%rsi
call   1040 <strcpy@plt>
lea    0x3d8a(%rsp),%rdi
lea    0xfd8(%rip),%rsi
call   1040 <strcpy@plt>
lea    0x33e4(%rsp),%rdi
lea    0x102e(%rip),%r14
mov    %r14,%rsi
call   1040 <strcpy@plt>
lea    0x3466(%rsp),%rdi
lea    0x1081(%rip),%r15
mov    %r15,%rsi
call   1040 <strcpy@plt>
lea    0x34e8(%rsp),%rdi
lea    0x10d4(%rip),%r12
mov    %r12,%rsi
call   1040 <strcpy@plt>
lea    0x35ec(%rsp),%rdi
lea    0x1127(%rip),%r13
mov    %r13,%rsi
call   1040 <strcpy@plt>
lea    0x366e(%rsp),%rdi
lea    0x117a(%rip),%rbx
mov    %rbx,%rsi
call   1040 <strcpy@plt>
lea    0x36f0(%rsp),%rdi
mov    %r14,%rsi
call   1040 <strcpy@plt>
lea    0x37f4(%rsp),%rdi
mov    %r15,%rsi
call   1040 <strcpy@plt>
lea    0x3876(%rsp),%rdi
mov    %r12,%rsi
call   1040 <strcpy@plt>
lea    0x38f8(%rsp),%rdi
mov    %r13,%rsi
call   1040 <strcpy@plt>
lea    0x397a(%rsp),%rdi
mov    %rbx,%rsi
call   1040 <strcpy@plt>
lea    0x39fc(%rsp),%rdi
mov    %r14,%rsi
call   1040 <strcpy@plt>
lea    0x3b00(%rsp),%rdi
mov    %r15,%rsi
call   1040 <strcpy@plt>
lea    0x3b82(%rsp),%rdi
mov    %r12,%rsi
call   1040 <strcpy@plt>
lea    0x3c04(%rsp),%rdi
mov    %r13,%rsi
call   1040 <strcpy@plt>
lea    0x3c86(%rsp),%rdi
mov    %rbx,%rsi
call   1040 <strcpy@plt>
lea    0x3d08(%rsp),%rdi
mov    %r14,%rsi
call   1040 <strcpy@plt>
lea    0x3e0c(%rsp),%rdi
mov    %r15,%rsi
call   1040 <strcpy@plt>
lea    0x3e8e(%rsp),%rdi
mov    %r12,%rsi
call   1040 <strcpy@plt>
lea    0x3f10(%rsp),%rdi
mov    %r13,%rsi
call   1040 <strcpy@plt>
lea    0x3f92(%rsp),%rdi
mov    %rbx,%rsi
call   1040 <strcpy@plt>
lea    0x4014(%rsp),%rdi
mov    %r14,%rsi
call   1040 <strcpy@plt>
lea    0x10d5(%rip),%rdi
lea    0xc(%rsp),%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
subl   $0x1,0xc(%rsp)
jae    1375 <main+0x225>
xor    %eax,%eax
add    $0x10790,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
ret
lea    0x190(%rsp),%r12
lea    0x10a3(%rip),%r14
lea    0x4430(%rsp),%r15
jmp    13a1 <main+0x251>
xchg   %ax,%ax
mov    $0xa,%edi
call   1030 <putchar@plt>
subl   $0x1,0xc(%rsp)
jb     1362 <main+0x212>
mov    %r14,%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1070 <scanf@plt>
xorps  %xmm0,%xmm0
movaps %xmm0,(%r12)
movaps %xmm0,0x10(%r12)
movaps %xmm0,0x20(%r12)
movaps %xmm0,0x30(%r12)
movaps %xmm0,0x40(%r12)
movaps %xmm0,0x50(%r12)
movaps %xmm0,0x60(%r12)
mov    %r15,%rdi
call   1050 <strlen@plt>
test   %eax,%eax
jle    1390 <main+0x240>
mov    %eax,%r13d
xor    %ebx,%ebx
nopl   0x0(%rax,%rax,1)
movsbq 0x4430(%rsp,%rbx,1),%rax
movslq 0x10(%rsp,%rax,4),%rcx
lea    0x1(%rcx),%edx
mov    %edx,0x10(%rsp,%rax,4)
imul   $0xffffffff9c09c09d,%rcx,%rdx
shr    $0x20,%rdx
add    %ecx,%edx
mov    %edx,%esi
shr    $0x1f,%esi
sar    $0x6,%edx
add    %esi,%edx
imul   $0x69,%edx,%edx
sub    %edx,%ecx
movslq %ecx,%rcx
mov    %rax,%rdx
shl    $0x7,%rdx
lea    (%rdx,%rax,2),%rax
add    %rsp,%rax
add    $0x220,%rax
movsbl (%rcx,%rax,1),%edi
call   1030 <putchar@plt>
add    $0x1,%rbx
cmp    %rbx,%r13
jne    13f0 <main+0x2a0>
jmp    1390 <main+0x240>

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

LLVM IR (-O2):
@.str = [106 x i8] c"bhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpv\00"
@.str.1 = [106 x i8] c"cjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqw\00"
@.str.2 = [106 x i8] c"dkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrx\00"
@.str.3 = [106 x i8] c"flrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsy\00"
@.str.4 = [106 x i8] c"gmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntzgmsyflrxdkqwcjpvbhntz\00"
@.str.5 = [106 x i8] c"aeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiou\00"
@.str.6 = [106 x i8] c"eiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeioua\00"
@.str.7 = [106 x i8] c"iouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouae\00"
@.str.8 = [106 x i8] c"ouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaei\00"
@.str.9 = [106 x i8] c"uaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeiouaeio\00"
@.str.10 = [3 x i8] c"%d\00"
@.str.11 = [3 x i8] c"%s\00"
define i32 @main() {
%1 = alloca [130 x [130 x i8]]
%2 = alloca [50010 x i8]
%3 = alloca i32
%4 = alloca [130 x i32]
%5 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 0, i64 0
%6 = getelementptr inbounds [50010 x i8], [50010 x i8]* %2, i64 0, i64 0
%7 = bitcast i32* %3 to i8*
%8 = bitcast [130 x i32]* %4 to i8*
%9 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 97, i64 0
%10 = call i32 @strcpy(i8* %9, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str, i64 0, i64 0))
%11 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 101, i64 0
%12 = call i32 @strcpy(i8* %11, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.1, i64 0, i64 0))
%13 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 105, i64 0
%14 = call i32 @strcpy(i8* %13, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.2, i64 0, i64 0))
%15 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 111, i64 0
%16 = call i32 @strcpy(i8* %15, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.3, i64 0, i64 0))
%17 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 117, i64 0
%18 = call i32 @strcpy(i8* %17, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.4, i64 0, i64 0))
%19 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 98, i64 0
%20 = call i32 @strcpy(i8* %19, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.5, i64 0, i64 0))
%21 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 99, i64 0
%22 = call i32 @strcpy(i8* %21, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.6, i64 0, i64 0))
%23 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 100, i64 0
%24 = call i32 @strcpy(i8* %23, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.7, i64 0, i64 0))
%25 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 102, i64 0
%26 = call i32 @strcpy(i8* %25, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.8, i64 0, i64 0))
%27 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 103, i64 0
%28 = call i32 @strcpy(i8* %27, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.9, i64 0, i64 0))
%29 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 104, i64 0
%30 = call i32 @strcpy(i8* %29, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.5, i64 0, i64 0))
%31 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 106, i64 0
%32 = call i32 @strcpy(i8* %31, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.6, i64 0, i64 0))
%33 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 107, i64 0
%34 = call i32 @strcpy(i8* %33, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.7, i64 0, i64 0))
%35 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 108, i64 0
%36 = call i32 @strcpy(i8* %35, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.8, i64 0, i64 0))
%37 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 109, i64 0
%38 = call i32 @strcpy(i8* %37, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.9, i64 0, i64 0))
%39 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 110, i64 0
%40 = call i32 @strcpy(i8* %39, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.5, i64 0, i64 0))
%41 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 112, i64 0
%42 = call i32 @strcpy(i8* %41, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.6, i64 0, i64 0))
%43 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 113, i64 0
%44 = call i32 @strcpy(i8* %43, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.7, i64 0, i64 0))
%45 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 114, i64 0
%46 = call i32 @strcpy(i8* %45, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.8, i64 0, i64 0))
%47 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 115, i64 0
%48 = call i32 @strcpy(i8* %47, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.9, i64 0, i64 0))
%49 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 116, i64 0
%50 = call i32 @strcpy(i8* %49, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.5, i64 0, i64 0))
%51 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 118, i64 0
%52 = call i32 @strcpy(i8* %51, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.6, i64 0, i64 0))
%53 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 119, i64 0
%54 = call i32 @strcpy(i8* %53, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.7, i64 0, i64 0))
%55 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 120, i64 0
%56 = call i32 @strcpy(i8* %55, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.8, i64 0, i64 0))
%57 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 121, i64 0
%58 = call i32 @strcpy(i8* %57, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.9, i64 0, i64 0))
%59 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 122, i64 0
%60 = call i32 @strcpy(i8* %59, i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.5, i64 0, i64 0))
%61 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0), i32* %3)
%62 = load i32, i32* %3
%63 = add nsw i32 %62, -1
store i32 %63, i32* %3
%64 = icmp eq i32 %62, 0
br i1 %64, label %95, label %65
65: ; preds = %0
%66 = getelementptr inbounds [130 x i32], [130 x i32]* %4, i64 0, i64 96
%67 = bitcast i32* %66 to i8*
br label %68
68: ; preds = %65, %90
%69 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0), [50010 x i8]* %2)
%70 = call i32 @strlen(i8* %6)
%71 = icmp sgt i32 %70, 0
br i1 %71, label %72, label %90
72: ; preds = %68
%73 = zext i32 %70 to i64
br label %74
74: ; preds = %72, %74
%75 = phi i64 [ 0, %72 ], [ %88, %74 ]
%76 = getelementptr inbounds [50010 x i8], [50010 x i8]* %2, i64 0, i64 %75
%77 = load i8, i8* %76
%78 = sext i8 %77 to i64
%79 = getelementptr inbounds [130 x i32], [130 x i32]* %4, i64 0, i64 %78
%80 = load i32, i32* %79
%81 = add nsw i32 %80, 1
store i32 %81, i32* %79
%82 = srem i32 %80, 105
%83 = sext i32 %82 to i64
%84 = getelementptr inbounds [130 x [130 x i8]], [130 x [130 x i8]]* %1, i64 0, i64 %78, i64 %83
%85 = load i8, i8* %84
%86 = sext i8 %85 to i32
%87 = call i32 @putchar(i32 %86)
%88 = add nuw nsw i64 %75, 1
%89 = icmp eq i64 %88, %73
br i1 %89, label %90, label %74
90: ; preds = %74, %68
%91 = call i32 @putchar(i32 10)
%92 = load i32, i32* %3
%93 = add nsw i32 %92, -1
store i32 %93, i32* %3
%94 = icmp eq i32 %92, 0
br i1 %94, label %95, label %68
95: ; preds = %90, %0
ret i32 0
}