#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);
int /*<<< orphan*/ scanf(char *, char *);
int strlen(char *);
int main() {
  char number[1000];
  int index = 0;
  int lenght = 0;
  int sum = 0;
  scanf("%[^\n]s", number);
  lenght = strlen(number);
  for (index = 0; index < lenght; index++) {
    if (number[index] == 'C' && number[index - 1] != 'X')
      sum = sum + 100;
    if (number[index] == 'C' && number[index - 1] == 'X')
      sum = sum + 90;
    if (number[index] == 'L' && number[index - 1] != 'X')
      sum = sum + 50;
    if (number[index] == 'L' && number[index - 1] == 'X')
      sum = sum + 40;
    if (number[index] == 'X' && number[index - 1] != 'I' &&
        number[index + 1] != 'C')
      sum = sum + 10;
    if (number[index] == 'X' && number[index - 1] == 'I' &&
        number[index + 1] != 'C')
      sum = sum + 9;
    if (number[index] == 'V' && number[index - 1] != 'I')
      sum = sum + 5;
    if (number[index] == 'V' && number[index - 1] == 'I')
      sum = sum + 4;
    if (number[index] == 'I' && number[index + 1] != 'V' &&
        number[index + 1] != 'X')
      sum = sum + 1;
  }
  printf("%d\n", sum);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x400,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x3f4(%rbp)
movl   $0x0,-0x3f8(%rbp)
movl   $0x0,-0x3fc(%rbp)
lea    -0x3f0(%rbp),%rsi
lea    0xe92(%rip),%rdi
call   1050 <scanf@plt>
lea    -0x3f0(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x3f8(%rbp)
movl   $0x0,-0x3f4(%rbp)
mov    -0x3f4(%rbp),%eax
cmp    -0x3f8(%rbp),%eax
jge    1469 <main+0x339>
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
jne    11e4 <main+0xb4>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
je     11e4 <main+0xb4>
mov    -0x3fc(%rbp),%eax
add    $0x64,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
jne    1227 <main+0xf7>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
jne    1227 <main+0xf7>
mov    -0x3fc(%rbp),%eax
add    $0x5a,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
jne    126a <main+0x13a>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
je     126a <main+0x13a>
mov    -0x3fc(%rbp),%eax
add    $0x32,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x4c,%eax
jne    12ad <main+0x17d>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
jne    12ad <main+0x17d>
mov    -0x3fc(%rbp),%eax
add    $0x28,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
jne    130c <main+0x1dc>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
je     130c <main+0x1dc>
mov    -0x3f4(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
je     130c <main+0x1dc>
mov    -0x3fc(%rbp),%eax
add    $0xa,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
jne    136b <main+0x23b>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    136b <main+0x23b>
mov    -0x3f4(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x43,%eax
je     136b <main+0x23b>
mov    -0x3fc(%rbp),%eax
add    $0x9,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
jne    13ae <main+0x27e>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
je     13ae <main+0x27e>
mov    -0x3fc(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
jne    13f1 <main+0x2c1>
mov    -0x3f4(%rbp),%eax
sub    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    13f1 <main+0x2c1>
mov    -0x3fc(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x3fc(%rbp)
movslq -0x3f4(%rbp),%rax
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x49,%eax
jne    1450 <main+0x320>
mov    -0x3f4(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x56,%eax
je     1450 <main+0x320>
mov    -0x3f4(%rbp),%eax
add    $0x1,%eax
cltq
movsbl -0x3f0(%rbp,%rax,1),%eax
ff
cmp    $0x58,%eax
je     1450 <main+0x320>
mov    -0x3fc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3fc(%rbp)
jmp    1455 <main+0x325>
mov    -0x3f4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3f4(%rbp)
jmp    118f <main+0x5f>
mov    -0x3fc(%rbp),%esi
lea    0xb91(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x400,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x3f0,%rsp
lea    0xf19(%rip),%rdi
mov    %rsp,%rbx
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    %rbx,%rdi
call   1030 <strlen@plt>
test   %eax,%eax
jle    11eb <main+0xbb>
mov    %eax,%eax
xor    %ecx,%ecx
lea    0xe9b(%rip),%rdx
xor    %esi,%esi
jmp    1189 <main+0x59>
xor    %edi,%edi
cmpb   $0x49,-0x1(%rsp,%rcx,1)
sete   %dil
sub    %edi,%esi
add    $0x5,%esi
nopl   0x0(%rax)
add    $0x1,%rcx
cmp    %rcx,%rax
je     11ed <main+0xbd>
movzbl (%rsp,%rcx,1),%ebx
add    $0xbd,%bl
cmp    $0x15,%bl
ja     1180 <main+0x50>
movzbl %bl,%edi
movslq (%rdx,%rdi,4),%rdi
add    %rdx,%rdi
jmp    *%rdi
lea    0x64(%rsi),%edi
add    $0x5a,%esi
jmp    11c3 <main+0x93>
movzbl 0x1(%rsp,%rcx,1),%ebx
cmp    $0x56,%bl
je     1180 <main+0x50>
cmp    $0x58,%bl
je     1180 <main+0x50>
add    $0x1,%esi
jmp    1180 <main+0x50>
lea    0x32(%rsi),%edi
add    $0x28,%esi
cmpb   $0x58,-0x1(%rsp,%rcx,1)
cmovne %edi,%esi
jmp    1180 <main+0x50>
movzbl 0x1(%rsp,%rcx,1),%ebx
cmpb   $0x49,-0x1(%rsp,%rcx,1)
jne    11de <main+0xae>
lea    0x9(%rsi),%edi
jmp    11e1 <main+0xb1>
lea    0xa(%rsi),%edi
cmp    $0x43,%bl
cmove  %esi,%edi
mov    %edi,%esi
jmp    1180 <main+0x50>
xor    %esi,%esi
lea    0xe6b(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x3f0,%rsp
pop    %rbx
ret

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

LLVM IR (-O2):
@.str = [7 x i8] c"%[^\0A]s\00"
@.str.1 = [4 x i8] c"%d\0A\00"
define i32 @main() {
%1 = alloca [1000 x i8]
%2 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 0
%3 = call i32 @scanf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i8* %2)
%4 = call i32 @strlen(i8* %2)
%5 = icmp sgt i32 %4, 0
br i1 %5, label %6, label %59
6: ; preds = %0
%7 = zext i32 %4 to i64
br label %8
8: ; preds = %6, %55
%9 = phi i64 [ 0, %6 ], [ %57, %55 ]
%10 = phi i32 [ 0, %6 ], [ %56, %55 ]
%11 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %9
%12 = load i8, i8* %11
switch i8 %12, label %55 [
i8 67, label %13
i8 76, label %20
i8 88, label %27
i8 86, label %42
i8 73, label %49
]
13: ; preds = %8
%14 = add nsw i64 %9, -1
%15 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %14
%16 = load i8, i8* %15
%17 = icmp eq i8 %16, 88
%18 = select i1 %17, i32 90, i32 100
%19 = add nsw i32 %10, %18
br label %55
20: ; preds = %8
%21 = add nsw i64 %9, -1
%22 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %21
%23 = load i8, i8* %22
%24 = icmp eq i8 %23, 88
%25 = select i1 %24, i32 40, i32 50
%26 = add nsw i32 %10, %25
br label %55
27: ; preds = %8
%28 = add nsw i64 %9, -1
%29 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %28
%30 = load i8, i8* %29
%31 = icmp eq i8 %30, 73
%32 = add nuw nsw i64 %9, 1
%33 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %32
%34 = load i8, i8* %33
%35 = icmp eq i8 %34, 67
br i1 %31, label %39, label %36
36: ; preds = %27
%37 = add nsw i32 %10, 10
%38 = select i1 %35, i32 %10, i32 %37
br label %55
39: ; preds = %27
%40 = add nsw i32 %10, 9
%41 = select i1 %35, i32 %10, i32 %40
br label %55
42: ; preds = %8
%43 = add nsw i64 %9, -1
%44 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %43
%45 = load i8, i8* %44
%46 = icmp eq i8 %45, 73
%47 = select i1 %46, i32 4, i32 5
%48 = add nsw i32 %10, %47
br label %55
49: ; preds = %8
%50 = add nuw nsw i64 %9, 1
%51 = getelementptr inbounds [1000 x i8], [1000 x i8]* %1, i64 0, i64 %50
%52 = load i8, i8* %51
switch i8 %52, label %53 [
i8 86, label %55
i8 88, label %55
]
53: ; preds = %49
%54 = add nsw i32 %10, 1
br label %55
55: ; preds = %36, %8, %42, %20, %13, %39, %49, %49, %53
%56 = phi i32 [ %54, %53 ], [ %10, %49 ], [ %10, %49 ], [ %38, %36 ], [ %41, %39 ], [ %26, %20 ], [ %19, %13 ], [ %48, %42 ], [ %10, %8 ]
%57 = add nuw nsw i64 %9, 1
%58 = icmp eq i64 %57, %7
br i1 %58, label %59, label %8
59: ; preds = %55, %0
%60 = phi i32 [ 0, %0 ], [ %56, %55 ]
%61 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %60)
ret i32 0
}