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


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
lea    0xeb1(%rip),%rdi
lea    -0x4(%rbp),%rsi
call   1060 <scanf@plt>
mov    0x2e89(%rip),%rax
mov    (%rax),%edi
call   1050 <fflush@plt>
movl   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1445 <main+0x305>
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
lea    -0x60(%rbp),%rdi
mov    0x2e56(%rip),%rax
mov    (%rax),%edx
mov    $0x53,%esi
call   1040 <fgets@plt>
movslq -0xc(%rbp),%rax
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     141c <main+0x2dc>
movslq -0xc(%rbp),%rax
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x70,%eax
je     11d4 <main+0x94>
movslq -0xc(%rbp),%rax
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x50,%eax
jne    140e <main+0x2ce>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     1409 <main+0x2c9>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x72,%eax
je     1216 <main+0xd6>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x52,%eax
jne    1404 <main+0x2c4>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13ff <main+0x2bf>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x6f,%eax
je     1261 <main+0x121>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x4f,%eax
jne    13fa <main+0x2ba>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13f5 <main+0x2b5>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x62,%eax
je     12ac <main+0x16c>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x42,%eax
jne    13f0 <main+0x2b0>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13eb <main+0x2ab>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x6c,%eax
je     12f7 <main+0x1b7>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x4c,%eax
jne    13e6 <main+0x2a6>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13e1 <main+0x2a1>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x65,%eax
je     1342 <main+0x202>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x45,%eax
jne    13dc <main+0x29c>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13d7 <main+0x297>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x6d,%eax
je     138d <main+0x24d>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x4d,%eax
jne    13d2 <main+0x292>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x60(%rbp,%rax,1),%eax
cmp    $0x0,%eax
je     13cd <main+0x28d>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
lea    0xc48(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x10(%rbp)
jmp    141c <main+0x2dc>
jmp    13d2 <main+0x292>
jmp    13d7 <main+0x297>
jmp    13dc <main+0x29c>
jmp    13e1 <main+0x2a1>
jmp    13e6 <main+0x2a6>
jmp    13eb <main+0x2ab>
jmp    13f0 <main+0x2b0>
jmp    13f5 <main+0x2b5>
jmp    13fa <main+0x2ba>
jmp    13ff <main+0x2bf>
jmp    1404 <main+0x2c4>
jmp    1409 <main+0x2c9>
jmp    140e <main+0x2ce>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    119e <main+0x5e>
cmpl   $0x0,-0x10(%rbp)
jne    1432 <main+0x2f2>
lea    0xbdc(%rip),%rdi
call   1030 <printf@plt>
jmp    1437 <main+0x2f7>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    116d <main+0x2d>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x60,%rsp
lea    0xead(%rip),%rdi
lea    0xc(%rsp),%rsi
call   1060 <scanf@plt>
mov    0x2e84(%rip),%r14
mov    (%r14),%edi
call   1050 <fflush@plt>
cmpl   $0x0,0xc(%rsp)
jle    125f <main+0x11f>
xor    %ebp,%ebp
lea    0x10(%rsp),%rbx
lea    0xe7f(%rip),%r15
lea    0xe7c(%rip),%r12
jmp    11a5 <main+0x65>
xchg   %ax,%ax
mov    %r15,%rdi
call   1030 <puts@plt>
add    $0x1,%ebp
cmp    0xc(%rsp),%ebp
jge    125f <main+0x11f>
mov    (%r14),%edx
mov    %rbx,%rdi
mov    $0x53,%esi
call   1040 <fgets@plt>
xor    %ecx,%ecx
jmp    11c7 <main+0x87>
nopl   0x0(%rax)
test   %dl,%dl
je     1190 <main+0x50>
add    $0x1,%ecx
movslq %ecx,%rax
movzbl 0x10(%rsp,%rax,1),%edx
cmp    $0x50,%dl
je     11d9 <main+0x99>
cmp    $0x70,%dl
jne    11c0 <main+0x80>
movzbl 0x11(%rsp,%rax,1),%edx
or     $0x20,%dl
cmp    $0x72,%dl
jne    11c4 <main+0x84>
movzbl 0x12(%rsp,%rax,1),%ecx
or     $0x20,%cl
cmp    $0x6f,%cl
jne    1234 <main+0xf4>
movzbl 0x13(%rsp,%rax,1),%ecx
or     $0x20,%cl
cmp    $0x62,%cl
jne    123a <main+0xfa>
movzbl 0x14(%rsp,%rax,1),%ecx
or     $0x20,%cl
cmp    $0x6c,%cl
jne    1240 <main+0x100>
movzbl 0x15(%rsp,%rax,1),%ecx
or     $0x20,%cl
cmp    $0x65,%cl
jne    1246 <main+0x106>
movzbl 0x16(%rsp,%rax,1),%ecx
or     $0x20,%cl
cmp    $0x6d,%cl
jne    124c <main+0x10c>
cmpb   $0x0,0x7(%rax,%rbx,1)
jne    1257 <main+0x117>
add    $0x6,%rax
jmp    1250 <main+0x110>
add    $0x1,%rax
jmp    1250 <main+0x110>
add    $0x2,%rax
jmp    1250 <main+0x110>
add    $0x3,%rax
jmp    1250 <main+0x110>
add    $0x4,%rax
jmp    1250 <main+0x110>
add    $0x5,%rax
mov    %eax,%ecx
jmp    11c4 <main+0x84>
mov    %r12,%rdi
jmp    1193 <main+0x53>
add    $0x60,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

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

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