#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*/ gets(char **);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ scanf(char *, int *);
void main() {
  int n, i, j, flag;
  char p[81];
  scanf("%i", &n);
  for (i = 0; i < n; i++) {
    gets(&p);
    printf("A\n");
    j = 0;
    flag = 0;
    while (p[j] != '\0') {
      if ((p[j] == 'p') || (p[j] == 'P')) {
        if (p[j + 1] != '\0') {
          j += 1;
          if ((p[j] == 'r') || (p[j] == 'R')) {
            if (p[j + 1] != '\0') {
              j += 1;
              if ((p[j] == 'o') || (p[j] == 'O')) {
                if (p[j + 1] != '\0') {
                  j += 1;
                  if ((p[j] == 'b') || (p[j] == 'B')) {
                    if (p[j + 1] != '\0') {
                      j += 1;
                      if ((p[j] == 'l') || (p[j] == 'L')) {
                        if (p[j + 1] != '\0') {
                          j += 1;
                          if ((p[j] == 'e') || (p[j] == 'E')) {
                            if (p[j + 1] != '\0') {
                              j += 1;
                              if ((p[j] == 'm') || (p[j] == 'M')) {
                                if (p[j + 1] != '\0') {
                                  j += 1;
                                  printf("SIM\n");
                                  flag = 1;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    if (flag == 0) {
      printf("NAO\n");
    }
  }
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
lea    0xec1(%rip),%rdi
lea    -0x4(%rbp),%rsi
call   1050 <scanf@plt>
movl   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    13e7 <main+0x2b7>
lea    -0x70(%rbp),%rdi
call   1040 <gets@plt>
lea    0xe98(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13be <main+0x28e>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x70,%eax
je     11b4 <main+0x84>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x50,%eax
jne    13b9 <main+0x289>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13b4 <main+0x284>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x72,%eax
je     11f7 <main+0xc7>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x52,%eax
jne    13af <main+0x27f>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13aa <main+0x27a>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x6f,%eax
je     123a <main+0x10a>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x4f,%eax
jne    13a5 <main+0x275>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13a0 <main+0x270>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x62,%eax
je     127d <main+0x14d>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x42,%eax
jne    139b <main+0x26b>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     1396 <main+0x266>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x6c,%eax
je     12c0 <main+0x190>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x4c,%eax
jne    1391 <main+0x261>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     138c <main+0x25c>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x65,%eax
je     1303 <main+0x1d3>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x45,%eax
jne    1387 <main+0x257>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     1382 <main+0x252>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x6d,%eax
je     1346 <main+0x216>
movslq -0xc(%rbp),%rax
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x4d,%eax
jne    137d <main+0x24d>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x70(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     1378 <main+0x248>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
lea    0xc9a(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x10(%rbp)
jmp    137d <main+0x24d>
jmp    1382 <main+0x252>
jmp    1387 <main+0x257>
jmp    138c <main+0x25c>
jmp    1391 <main+0x261>
jmp    1396 <main+0x266>
jmp    139b <main+0x26b>
jmp    13a0 <main+0x270>
jmp    13a5 <main+0x275>
jmp    13aa <main+0x27a>
jmp    13af <main+0x27f>
jmp    13b4 <main+0x284>
jmp    13b9 <main+0x289>
jmp    117e <main+0x4e>
cmpl   $0x0,-0x10(%rbp)
jne    13d4 <main+0x2a4>
lea    0xc3c(%rip),%rdi
call   1030 <printf@plt>
jmp    13d9 <main+0x2a9>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    114f <main+0x1f>
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x68,%rsp
lea    0xebb(%rip),%rdi
lea    0xc(%rsp),%rsi
call   1050 <scanf@plt>
cmpl   $0x0,0xc(%rsp)
jle    128d <main+0x15d>
xor    %ebp,%ebp
lea    0x10(%rsp),%r14
lea    0xe9b(%rip),%r13
lea    0xe9a(%rip),%r15
lea    0xe8f(%rip),%r12
jmp    1195 <main+0x65>
nopl   0x0(%rax,%rax,1)
test   %eax,%eax
je     1280 <main+0x150>
add    $0x1,%ebp
cmp    0xc(%rsp),%ebp
jge    128d <main+0x15d>
mov    %r14,%rdi
call   1040 <gets@plt>
mov    %r13,%rdi
call   1030 <puts@plt>
xor    %ecx,%ecx
xor    %eax,%eax
jmp    11b4 <main+0x84>
nopl   0x0(%rax,%rax,1)
test   %dl,%dl
je     1180 <main+0x50>
movslq %ecx,%rbx
movzbl 0x10(%rsp,%rbx,1),%edx
cmp    $0x50,%dl
je     11c6 <main+0x96>
cmp    $0x70,%dl
jne    11b0 <main+0x80>
movzbl 0x11(%rsp,%rbx,1),%edx
test   %dl,%dl
je     11b4 <main+0x84>
lea    0x1(%rbx),%rcx
cmp    $0x72,%dl
je     11dd <main+0xad>
cmp    $0x52,%dl
jne    11b4 <main+0x84>
movzbl 0x12(%rsp,%rbx,1),%edx
test   %dl,%dl
je     11b4 <main+0x84>
lea    0x2(%rbx),%rcx
cmp    $0x6f,%dl
je     11f4 <main+0xc4>
cmp    $0x4f,%dl
jne    11b4 <main+0x84>
movzbl 0x13(%rsp,%rbx,1),%edx
test   %dl,%dl
je     11b4 <main+0x84>
lea    0x3(%rbx),%rcx
cmp    $0x62,%dl
je     120b <main+0xdb>
cmp    $0x42,%dl
jne    11b4 <main+0x84>
movzbl 0x14(%rsp,%rbx,1),%edx
test   %dl,%dl
je     11b4 <main+0x84>
lea    0x4(%rbx),%rcx
cmp    $0x6c,%dl
je     1222 <main+0xf2>
cmp    $0x4c,%dl
jne    11b4 <main+0x84>
movzbl 0x15(%rsp,%rbx,1),%edx
test   %dl,%dl
je     11b4 <main+0x84>
lea    0x5(%rbx),%rcx
cmp    $0x65,%dl
je     123d <main+0x10d>
cmp    $0x45,%dl
jne    11b4 <main+0x84>
movzbl 0x16(%rsp,%rbx,1),%edx
test   %dl,%dl
je     11b4 <main+0x84>
lea    0x6(%rbx),%rcx
cmp    $0x6d,%dl
je     125c <main+0x12c>
cmp    $0x4d,%dl
jne    11b4 <main+0x84>
cmpb   $0x0,0x17(%rsp,%rbx,1)
je     11b4 <main+0x84>
add    $0x7,%rbx
mov    %r15,%rdi
call   1030 <puts@plt>
mov    $0x1,%eax
mov    %ebx,%ecx
jmp    11b4 <main+0x84>
nop
mov    %r12,%rdi
call   1030 <puts@plt>
jmp    1188 <main+0x58>
add    $0x68,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%i\00"
@.str.1 = [3 x i8] c"A\0A\00"
@.str.2 = [5 x i8] c"SIM\0A\00"
@.str.3 = [5 x i8] c"NAO\0A\00"
define void @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca [81 x i8]
%6 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32* %1)
store i32 0, i32* %2
br label %7
7: ; preds = %212, %0
%8 = load i32, i32* %2
%9 = load i32, i32* %1
%10 = icmp slt i32 %8, %9
br i1 %10, label %11, label %215
11: ; preds = %7
%12 = bitcast [81 x i8]* %5 to i8**
%13 = call i32 @gets(i8** %12)
%14 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
store i32 0, i32* %3
store i32 0, i32* %4
br label %15
15: ; preds = %205, %11
%16 = load i32, i32* %3
%17 = sext i32 %16 to i64
%18 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %17
%19 = load i8, i8* %18
%20 = sext i8 %19 to i32
%21 = icmp ne i32 %20, 0
br i1 %21, label %22, label %206
22: ; preds = %15
%23 = load i32, i32* %3
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %24
%26 = load i8, i8* %25
%27 = sext i8 %26 to i32
%28 = icmp eq i32 %27, 112
br i1 %28, label %36, label %29
29: ; preds = %22
%30 = load i32, i32* %3
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %31
%33 = load i8, i8* %32
%34 = sext i8 %33 to i32
%35 = icmp eq i32 %34, 80
br i1 %35, label %36, label %205
36: ; preds = %29, %22
%37 = load i32, i32* %3
%38 = add nsw i32 %37, 1
%39 = sext i32 %38 to i64
%40 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %39
%41 = load i8, i8* %40
%42 = sext i8 %41 to i32
%43 = icmp ne i32 %42, 0
br i1 %43, label %44, label %204
44: ; preds = %36
%45 = load i32, i32* %3
%46 = add nsw i32 %45, 1
store i32 %46, i32* %3
%47 = load i32, i32* %3
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %48
%50 = load i8, i8* %49
%51 = sext i8 %50 to i32
%52 = icmp eq i32 %51, 114
br i1 %52, label %60, label %53
53: ; preds = %44
%54 = load i32, i32* %3
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %55
%57 = load i8, i8* %56
%58 = sext i8 %57 to i32
%59 = icmp eq i32 %58, 82
br i1 %59, label %60, label %203
60: ; preds = %53, %44
%61 = load i32, i32* %3
%62 = add nsw i32 %61, 1
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %63
%65 = load i8, i8* %64
%66 = sext i8 %65 to i32
%67 = icmp ne i32 %66, 0
br i1 %67, label %68, label %202
68: ; preds = %60
%69 = load i32, i32* %3
%70 = add nsw i32 %69, 1
store i32 %70, i32* %3
%71 = load i32, i32* %3
%72 = sext i32 %71 to i64
%73 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %72
%74 = load i8, i8* %73
%75 = sext i8 %74 to i32
%76 = icmp eq i32 %75, 111
br i1 %76, label %84, label %77
77: ; preds = %68
%78 = load i32, i32* %3
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %79
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp eq i32 %82, 79
br i1 %83, label %84, label %201
84: ; preds = %77, %68
%85 = load i32, i32* %3
%86 = add nsw i32 %85, 1
%87 = sext i32 %86 to i64
%88 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %87
%89 = load i8, i8* %88
%90 = sext i8 %89 to i32
%91 = icmp ne i32 %90, 0
br i1 %91, label %92, label %200
92: ; preds = %84
%93 = load i32, i32* %3
%94 = add nsw i32 %93, 1
store i32 %94, i32* %3
%95 = load i32, i32* %3
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %96
%98 = load i8, i8* %97
%99 = sext i8 %98 to i32
%100 = icmp eq i32 %99, 98
br i1 %100, label %108, label %101
101: ; preds = %92
%102 = load i32, i32* %3
%103 = sext i32 %102 to i64
%104 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %103
%105 = load i8, i8* %104
%106 = sext i8 %105 to i32
%107 = icmp eq i32 %106, 66
br i1 %107, label %108, label %199
108: ; preds = %101, %92
%109 = load i32, i32* %3
%110 = add nsw i32 %109, 1
%111 = sext i32 %110 to i64
%112 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %111
%113 = load i8, i8* %112
%114 = sext i8 %113 to i32
%115 = icmp ne i32 %114, 0
br i1 %115, label %116, label %198
116: ; preds = %108
%117 = load i32, i32* %3
%118 = add nsw i32 %117, 1
store i32 %118, i32* %3
%119 = load i32, i32* %3
%120 = sext i32 %119 to i64
%121 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %120
%122 = load i8, i8* %121
%123 = sext i8 %122 to i32
%124 = icmp eq i32 %123, 108
br i1 %124, label %132, label %125
125: ; preds = %116
%126 = load i32, i32* %3
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %127
%129 = load i8, i8* %128
%130 = sext i8 %129 to i32
%131 = icmp eq i32 %130, 76
br i1 %131, label %132, label %197
132: ; preds = %125, %116
%133 = load i32, i32* %3
%134 = add nsw i32 %133, 1
%135 = sext i32 %134 to i64
%136 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %135
%137 = load i8, i8* %136
%138 = sext i8 %137 to i32
%139 = icmp ne i32 %138, 0
br i1 %139, label %140, label %196
140: ; preds = %132
%141 = load i32, i32* %3
%142 = add nsw i32 %141, 1
store i32 %142, i32* %3
%143 = load i32, i32* %3
%144 = sext i32 %143 to i64
%145 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %144
%146 = load i8, i8* %145
%147 = sext i8 %146 to i32
%148 = icmp eq i32 %147, 101
br i1 %148, label %156, label %149
149: ; preds = %140
%150 = load i32, i32* %3
%151 = sext i32 %150 to i64
%152 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %151
%153 = load i8, i8* %152
%154 = sext i8 %153 to i32
%155 = icmp eq i32 %154, 69
br i1 %155, label %156, label %195
156: ; preds = %149, %140
%157 = load i32, i32* %3
%158 = add nsw i32 %157, 1
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %159
%161 = load i8, i8* %160
%162 = sext i8 %161 to i32
%163 = icmp ne i32 %162, 0
br i1 %163, label %164, label %194
164: ; preds = %156
%165 = load i32, i32* %3
%166 = add nsw i32 %165, 1
store i32 %166, i32* %3
%167 = load i32, i32* %3
%168 = sext i32 %167 to i64
%169 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %168
%170 = load i8, i8* %169
%171 = sext i8 %170 to i32
%172 = icmp eq i32 %171, 109
br i1 %172, label %180, label %173
173: ; preds = %164
%174 = load i32, i32* %3
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %175
%177 = load i8, i8* %176
%178 = sext i8 %177 to i32
%179 = icmp eq i32 %178, 77
br i1 %179, label %180, label %193
180: ; preds = %173, %164
%181 = load i32, i32* %3
%182 = add nsw i32 %181, 1
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [81 x i8], [81 x i8]* %5, i64 0, i64 %183
%185 = load i8, i8* %184
%186 = sext i8 %185 to i32
%187 = icmp ne i32 %186, 0
br i1 %187, label %188, label %192
188: ; preds = %180
%189 = load i32, i32* %3
%190 = add nsw i32 %189, 1
store i32 %190, i32* %3
%191 = call i32 @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0))
store i32 1, i32* %4
br label %192
192: ; preds = %188, %180
br label %193
193: ; preds = %192, %173
br label %194
194: ; preds = %193, %156
br label %195
195: ; preds = %194, %149
br label %196
196: ; preds = %195, %132
br label %197
197: ; preds = %196, %125
br label %198
198: ; preds = %197, %108
br label %199
199: ; preds = %198, %101
br label %200
200: ; preds = %199, %84
br label %201
201: ; preds = %200, %77
br label %202
202: ; preds = %201, %60
br label %203
203: ; preds = %202, %53
br label %204
204: ; preds = %203, %36
br label %205
205: ; preds = %204, %29
br label %15
206: ; preds = %15
%207 = load i32, i32* %4
%208 = icmp eq i32 %207, 0
br i1 %208, label %209, label %211
209: ; preds = %206
%210 = call i32 @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
br label %211
211: ; preds = %209, %206
br label %212
212: ; preds = %211
%213 = load i32, i32* %2
%214 = add nsw i32 %213, 1
store i32 %214, i32* %2
br label %7
215: ; preds = %7
ret void
}

LLVM IR (-O2):
@.str = [3 x i8] c"%i\00"
@str = [2 x i8] c"A\00"
@str.4 = [4 x i8] c"NAO\00"
@str.5 = [4 x i8] c"SIM\00"
define void @main() {
%1 = alloca i32
%2 = alloca [81 x i8]
%3 = bitcast i32* %1 to i8*
%4 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 0
%5 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32* %1)
%6 = load i32, i32* %1
%7 = icmp sgt i32 %6, 0
br i1 %7, label %8, label %75
8: ; preds = %0
%9 = bitcast [81 x i8]* %2 to i8**
br label %10
10: ; preds = %8, %71
%11 = phi i32 [ 0, %8 ], [ %72, %71 ]
%12 = call i32 @gets(i8** %9)
%13 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str, i64 0, i64 0))
br label %14
14: ; preds = %50, %10
%15 = phi i32 [ 0, %10 ], [ %51, %50 ]
%16 = phi i32 [ 0, %10 ], [ %52, %50 ]
%17 = sext i32 %15 to i64
%18 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %17
%19 = load i8, i8* %18
switch i8 %19, label %50 [
i8 0, label %67
i8 112, label %20
i8 80, label %20
]
20: ; preds = %14, %14
%21 = add nsw i32 %15, 1
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %22
%24 = load i8, i8* %23
switch i8 %24, label %61 [
i8 0, label %50
i8 114, label %25
i8 82, label %25
]
25: ; preds = %20, %20
%26 = add nsw i32 %15, 2
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %27
%29 = load i8, i8* %28
switch i8 %29, label %62 [
i8 0, label %50
i8 111, label %30
i8 79, label %30
]
30: ; preds = %25, %25
%31 = add nsw i32 %15, 3
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %32
%34 = load i8, i8* %33
switch i8 %34, label %63 [
i8 0, label %50
i8 98, label %35
i8 66, label %35
]
35: ; preds = %30, %30
%36 = add nsw i32 %15, 4
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %37
%39 = load i8, i8* %38
switch i8 %39, label %64 [
i8 0, label %50
i8 108, label %40
i8 76, label %40
]
40: ; preds = %35, %35
%41 = add nsw i32 %15, 5
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %42
%44 = load i8, i8* %43
switch i8 %44, label %65 [
i8 0, label %50
i8 101, label %45
i8 69, label %45
]
45: ; preds = %40, %40
%46 = add nsw i32 %15, 6
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %47
%49 = load i8, i8* %48
switch i8 %49, label %66 [
i8 0, label %50
i8 109, label %53
i8 77, label %53
]
50: ; preds = %45, %66, %40, %65, %35, %64, %30, %63, %25, %62, %20, %61, %14, %53, %59
%51 = phi i32 [ %54, %59 ], [ %46, %53 ], [ %41, %45 ], [ %36, %40 ], [ %31, %35 ], [ %26, %30 ], [ %21, %25 ], [ %15, %20 ], [ %15, %14 ], [ %21, %61 ], [ %26, %62 ], [ %31, %63 ], [ %36, %64 ], [ %41, %65 ], [ %46, %66 ]
%52 = phi i32 [ 1, %59 ], [ %16, %53 ], [ %16, %45 ], [ %16, %40 ], [ %16, %35 ], [ %16, %30 ], [ %16, %25 ], [ %16, %20 ], [ %16, %14 ], [ %16, %61 ], [ %16, %62 ], [ %16, %63 ], [ %16, %64 ], [ %16, %65 ], [ %16, %66 ]
br label %14
53: ; preds = %45, %45
%54 = add nsw i32 %15, 7
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds [81 x i8], [81 x i8]* %2, i64 0, i64 %55
%57 = load i8, i8* %56
%58 = icmp eq i8 %57, 0
br i1 %58, label %50, label %59
59: ; preds = %53
%60 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.5, i64 0, i64 0))
br label %50
61: ; preds = %20
br label %50
62: ; preds = %25
br label %50
63: ; preds = %30
br label %50
64: ; preds = %35
br label %50
65: ; preds = %40
br label %50
66: ; preds = %45
br label %50
67: ; preds = %14
%68 = icmp eq i32 %16, 0
br i1 %68, label %69, label %71
69: ; preds = %67
%70 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.4, i64 0, i64 0))
br label %71
71: ; preds = %67, %69
%72 = add nuw nsw i32 %11, 1
%73 = load i32, i32* %1
%74 = icmp slt i32 %72, %73
br i1 %74, label %10, label %75
75: ; preds = %71, %0
ret void
}