#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 egn[12];
  int stop[13], count, help = 1, sum[10];
  scanf("%s", egn);
  help = strlen(egn);
  if (help != 10)
    stop[12] = 1;
  if (egn[0] < '0' && egn[0] > '9')
    stop[0] = 1;
  if (egn[1] < '0' && egn[1] > '9')
    stop[1] = 1;
  if ((egn[2] == '0' && egn[3] == '0') || (egn[2] == '2' && egn[3] == '0'))
    stop[2] = 1;
  if (egn[2] == '1' && egn[3] > '2')
    stop[3] = 1;
  if (egn[2] > '5')
    stop[4] = 1;
  if (egn[2] == '3' && egn[3] > '2')
    stop[5] = 1;
  if (egn[2] == '5' && egn[3] > '2')
    stop[6] = 1;
  if (egn[4] < '0' && egn[4] > '9')
    stop[7] = 1;
  if (egn[5] < '0' && egn[5] > '9')
    stop[8] = 1;
  if (egn[6] < '0' && egn[6] > '9')
    stop[9] = 1;
  if (egn[7] < '0' && egn[7] > '9')
    stop[10] = 1;
  if (egn[8] < '0' && egn[8] > '9')
    stop[11] = 1;
  for (count = 0; count < 10; count++) {
    if (egn[count] == '0')
      sum[count] = 0;
    if (egn[count] == '1')
      sum[count] = 1;
    if (egn[count] == '2')
      sum[count] = 2;
    if (egn[count] == '3')
      sum[count] = 3;
    if (egn[count] == '4')
      sum[count] = 4;
    if (egn[count] == '5')
      sum[count] = 5;
    if (egn[count] == '6')
      sum[count] = 6;
    if (egn[count] == '7')
      sum[count] = 7;
    if (egn[count] == '8')
      sum[count] = 8;
    if (egn[count] == '9')
      sum[count] = 9;
  }
  sum[10] = (sum[0] * 2 + sum[1] * 4 + sum[2] * 8 + sum[3] * 5 + sum[4] * 10 +
             sum[5] * 9 + sum[6] * 7 + sum[7] * 3 + sum[8] * 6) %
            11;
  if (sum[10] == 10)
    sum[10] = 0;
  if (sum[10] != sum[9])
    stop[13] = 1;
  for (count = 0, help = 1; count < 14; count++) {
    if (stop[count] == 1) {
      help = 0;
    }
  }
  printf("\n%d", help);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x1,-0x58(%rbp)
lea    -0x10(%rbp),%rsi
lea    0xeac(%rip),%rdi
call   1050 <scanf@plt>
lea    -0x10(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x58(%rbp)
cmpl   $0xa,-0x58(%rbp)
je     1176 <main+0x46>
movl   $0x1,-0x20(%rbp)
movsbl -0x10(%rbp),%eax
cmp    $0x30,%eax
jge    1197 <main+0x67>
movsbl -0x10(%rbp),%eax
cmp    $0x39,%eax
jle    1197 <main+0x67>
movl   $0x1,-0x50(%rbp)
movsbl -0xf(%rbp),%eax
cmp    $0x30,%eax
jge    11b8 <main+0x88>
movsbl -0xf(%rbp),%eax
cmp    $0x39,%eax
jle    11b8 <main+0x88>
movl   $0x1,-0x4c(%rbp)
movsbl -0xe(%rbp),%eax
cmp    $0x30,%eax
jne    11d2 <main+0xa2>
movsbl -0xd(%rbp),%eax
cmp    $0x30,%eax
je     11ec <main+0xbc>
movsbl -0xe(%rbp),%eax
cmp    $0x32,%eax
jne    11f3 <main+0xc3>
movsbl -0xd(%rbp),%eax
cmp    $0x30,%eax
jne    11f3 <main+0xc3>
movl   $0x1,-0x48(%rbp)
movsbl -0xe(%rbp),%eax
cmp    $0x31,%eax
jne    1214 <main+0xe4>
movsbl -0xd(%rbp),%eax
cmp    $0x32,%eax
jle    1214 <main+0xe4>
movl   $0x1,-0x44(%rbp)
movsbl -0xe(%rbp),%eax
cmp    $0x35,%eax
jle    1228 <main+0xf8>
movl   $0x1,-0x40(%rbp)
movsbl -0xe(%rbp),%eax
cmp    $0x33,%eax
jne    1249 <main+0x119>
movsbl -0xd(%rbp),%eax
cmp    $0x32,%eax
jle    1249 <main+0x119>
movl   $0x1,-0x3c(%rbp)
movsbl -0xe(%rbp),%eax
cmp    $0x35,%eax
jne    126a <main+0x13a>
movsbl -0xd(%rbp),%eax
cmp    $0x32,%eax
jle    126a <main+0x13a>
movl   $0x1,-0x38(%rbp)
movsbl -0xc(%rbp),%eax
cmp    $0x30,%eax
jge    128b <main+0x15b>
movsbl -0xc(%rbp),%eax
cmp    $0x39,%eax
jle    128b <main+0x15b>
movl   $0x1,-0x34(%rbp)
movsbl -0xb(%rbp),%eax
cmp    $0x30,%eax
jge    12ac <main+0x17c>
movsbl -0xb(%rbp),%eax
cmp    $0x39,%eax
jle    12ac <main+0x17c>
movl   $0x1,-0x30(%rbp)
movsbl -0xa(%rbp),%eax
cmp    $0x30,%eax
jge    12cd <main+0x19d>
movsbl -0xa(%rbp),%eax
cmp    $0x39,%eax
jle    12cd <main+0x19d>
movl   $0x1,-0x2c(%rbp)
movsbl -0x9(%rbp),%eax
cmp    $0x30,%eax
jge    12ee <main+0x1be>
movsbl -0x9(%rbp),%eax
cmp    $0x39,%eax
jle    12ee <main+0x1be>
movl   $0x1,-0x28(%rbp)
movsbl -0x8(%rbp),%eax
cmp    $0x30,%eax
jge    130f <main+0x1df>
movsbl -0x8(%rbp),%eax
cmp    $0x39,%eax
jle    130f <main+0x1df>
movl   $0x1,-0x24(%rbp)
movl   $0x0,-0x54(%rbp)
cmpl   $0xa,-0x54(%rbp)
jge    145f <main+0x32f>
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jne    133e <main+0x20e>
movslq -0x54(%rbp),%rax
movl   $0x0,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x31,%eax
jne    135c <main+0x22c>
movslq -0x54(%rbp),%rax
movl   $0x1,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x32,%eax
jne    137a <main+0x24a>
movslq -0x54(%rbp),%rax
movl   $0x2,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x33,%eax
jne    1398 <main+0x268>
movslq -0x54(%rbp),%rax
movl   $0x3,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x34,%eax
jne    13b6 <main+0x286>
movslq -0x54(%rbp),%rax
movl   $0x4,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x35,%eax
jne    13d4 <main+0x2a4>
movslq -0x54(%rbp),%rax
movl   $0x5,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x36,%eax
jne    13f2 <main+0x2c2>
movslq -0x54(%rbp),%rax
movl   $0x6,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x37,%eax
jne    1410 <main+0x2e0>
movslq -0x54(%rbp),%rax
movl   $0x7,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x38,%eax
jne    142e <main+0x2fe>
movslq -0x54(%rbp),%rax
movl   $0x8,-0x80(%rbp,%rax,4)
movslq -0x54(%rbp),%rax
movsbl -0x10(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jne    144c <main+0x31c>
movslq -0x54(%rbp),%rax
movl   $0x9,-0x80(%rbp,%rax,4)
jmp    1451 <main+0x321>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1316 <main+0x1e6>
mov    -0x80(%rbp),%eax
shl    $0x1,%eax
mov    -0x7c(%rbp),%ecx
shl    $0x2,%ecx
add    %ecx,%eax
mov    -0x78(%rbp),%ecx
shl    $0x3,%ecx
add    %ecx,%eax
imul   $0x5,-0x74(%rbp),%ecx
add    %ecx,%eax
imul   $0xa,-0x70(%rbp),%ecx
add    %ecx,%eax
imul   $0x9,-0x6c(%rbp),%ecx
add    %ecx,%eax
imul   $0x7,-0x68(%rbp),%ecx
add    %ecx,%eax
imul   $0x3,-0x64(%rbp),%ecx
add    %ecx,%eax
imul   $0x6,-0x60(%rbp),%ecx
add    %ecx,%eax
mov    $0xb,%ecx
cltd
idiv   %ecx
mov    %edx,-0x58(%rbp)
cmpl   $0xa,-0x58(%rbp)
jne    14b5 <main+0x385>
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x5c(%rbp),%eax
je     14c8 <main+0x398>
movl   $0x1,-0x1c(%rbp)
movl   $0x0,-0x54(%rbp)
movl   $0x1,-0x58(%rbp)
cmpl   $0xe,-0x54(%rbp)
jge    1509 <main+0x3d9>
movslq -0x54(%rbp),%rax
cmpl   $0x1,-0x50(%rbp,%rax,4)
jne    14f6 <main+0x3c6>
movl   $0x0,-0x58(%rbp)
jmp    14fb <main+0x3cb>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    14d6 <main+0x3a6>
mov    -0x58(%rbp),%esi
lea    0xaf0(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x40,%rsp
lea    0xec4(%rip),%rdi
lea    0x4(%rsp),%rbx
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    %rbx,%rdi
call   1030 <strlen@plt>
mov    0x4(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     1162 <main+0x32>
movzbl %al,%eax
mov    %eax,0x10(%rsp)
mov    0x5(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     1173 <main+0x43>
movzbl %al,%eax
mov    %eax,0x14(%rsp)
mov    0x6(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     1184 <main+0x54>
movzbl %al,%eax
mov    %eax,0x18(%rsp)
mov    0x7(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     1195 <main+0x65>
movzbl %al,%eax
mov    %eax,0x1c(%rsp)
mov    0x8(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     11a6 <main+0x76>
movzbl %al,%eax
mov    %eax,0x20(%rsp)
mov    0x9(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     11b7 <main+0x87>
movzbl %al,%eax
mov    %eax,0x24(%rsp)
mov    0xa(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     11c8 <main+0x98>
movzbl %al,%eax
mov    %eax,0x28(%rsp)
mov    0xb(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     11d9 <main+0xa9>
movzbl %al,%eax
mov    %eax,0x2c(%rsp)
mov    0xc(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     11ea <main+0xba>
movzbl %al,%eax
mov    %eax,0x30(%rsp)
mov    0xd(%rsp),%al
add    $0xd0,%al
cmp    $0x9,%al
ja     11fb <main+0xcb>
movzbl %al,%eax
mov    %eax,0x34(%rsp)
mov    0x10(%rsp),%eax
mov    0x14(%rsp),%ecx
add    %eax,%eax
lea    (%rax,%rcx,4),%eax
mov    0x18(%rsp),%ecx
lea    (%rax,%rcx,8),%eax
mov    0x1c(%rsp),%ecx
lea    (%rcx,%rcx,4),%ecx
add    %eax,%ecx
mov    0x20(%rsp),%eax
lea    (%rax,%rax,4),%eax
lea    (%rcx,%rax,2),%eax
mov    0x24(%rsp),%ecx
lea    (%rcx,%rcx,8),%ecx
add    %eax,%ecx
mov    0x28(%rsp),%eax
lea    0x0(,%rax,8),%edx
sub    %eax,%edx
add    %ecx,%edx
mov    0x2c(%rsp),%eax
lea    (%rax,%rax,2),%eax
add    %edx,%eax
mov    0x30(%rsp),%ecx
lea    (%rcx,%rcx,2),%ecx
lea    (%rax,%rcx,2),%eax
cltq
imul   $0x2e8ba2e9,%rax,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
sar    $0x21,%rcx
add    %edx,%ecx
lea    (%rcx,%rcx,4),%edx
lea    (%rcx,%rdx,2),%ecx
sub    %ecx,%eax
xor    %ecx,%ecx
cmp    $0xa,%eax
cmove  %ecx,%eax
mov    %eax,0x38(%rsp)
lea    0xd85(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x40,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%s\00"
@.str.1 = [4 x i8] c"\0A%d\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [12 x i8]
%3 = alloca [13 x i32]
%4 = alloca i32
%5 = alloca i32
%6 = alloca [10 x i32]
store i32 0, i32* %1
store i32 1, i32* %5
%7 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 0
%8 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %7)
%9 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 0
%10 = call i32 @strlen(i8* %9)
store i32 %10, i32* %5
%11 = load i32, i32* %5
%12 = icmp ne i32 %11, 10
br i1 %12, label %13, label %15
13: ; preds = %0
%14 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 12
store i32 1, i32* %14
br label %15
15: ; preds = %13, %0
%16 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 0
%17 = load i8, i8* %16
%18 = sext i8 %17 to i32
%19 = icmp slt i32 %18, 48
br i1 %19, label %20, label %27
20: ; preds = %15
%21 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 0
%22 = load i8, i8* %21
%23 = sext i8 %22 to i32
%24 = icmp sgt i32 %23, 57
br i1 %24, label %25, label %27
25: ; preds = %20
%26 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 0
store i32 1, i32* %26
br label %27
27: ; preds = %25, %20, %15
%28 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 1
%29 = load i8, i8* %28
%30 = sext i8 %29 to i32
%31 = icmp slt i32 %30, 48
br i1 %31, label %32, label %39
32: ; preds = %27
%33 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 1
%34 = load i8, i8* %33
%35 = sext i8 %34 to i32
%36 = icmp sgt i32 %35, 57
br i1 %36, label %37, label %39
37: ; preds = %32
%38 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 1
store i32 1, i32* %38
br label %39
39: ; preds = %37, %32, %27
%40 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 2
%41 = load i8, i8* %40
%42 = sext i8 %41 to i32
%43 = icmp eq i32 %42, 48
br i1 %43, label %44, label %49
44: ; preds = %39
%45 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 3
%46 = load i8, i8* %45
%47 = sext i8 %46 to i32
%48 = icmp eq i32 %47, 48
br i1 %48, label %59, label %49
49: ; preds = %44, %39
%50 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 2
%51 = load i8, i8* %50
%52 = sext i8 %51 to i32
%53 = icmp eq i32 %52, 50
br i1 %53, label %54, label %61
54: ; preds = %49
%55 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 3
%56 = load i8, i8* %55
%57 = sext i8 %56 to i32
%58 = icmp eq i32 %57, 48
br i1 %58, label %59, label %61
59: ; preds = %54, %44
%60 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 2
store i32 1, i32* %60
br label %61
61: ; preds = %59, %54, %49
%62 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 2
%63 = load i8, i8* %62
%64 = sext i8 %63 to i32
%65 = icmp eq i32 %64, 49
br i1 %65, label %66, label %73
66: ; preds = %61
%67 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 3
%68 = load i8, i8* %67
%69 = sext i8 %68 to i32
%70 = icmp sgt i32 %69, 50
br i1 %70, label %71, label %73
71: ; preds = %66
%72 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 3
store i32 1, i32* %72
br label %73
73: ; preds = %71, %66, %61
%74 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 2
%75 = load i8, i8* %74
%76 = sext i8 %75 to i32
%77 = icmp sgt i32 %76, 53
br i1 %77, label %78, label %80
78: ; preds = %73
%79 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 4
store i32 1, i32* %79
br label %80
80: ; preds = %78, %73
%81 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 2
%82 = load i8, i8* %81
%83 = sext i8 %82 to i32
%84 = icmp eq i32 %83, 51
br i1 %84, label %85, label %92
85: ; preds = %80
%86 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 3
%87 = load i8, i8* %86
%88 = sext i8 %87 to i32
%89 = icmp sgt i32 %88, 50
br i1 %89, label %90, label %92
90: ; preds = %85
%91 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 5
store i32 1, i32* %91
br label %92
92: ; preds = %90, %85, %80
%93 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 2
%94 = load i8, i8* %93
%95 = sext i8 %94 to i32
%96 = icmp eq i32 %95, 53
br i1 %96, label %97, label %104
97: ; preds = %92
%98 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 3
%99 = load i8, i8* %98
%100 = sext i8 %99 to i32
%101 = icmp sgt i32 %100, 50
br i1 %101, label %102, label %104
102: ; preds = %97
%103 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 6
store i32 1, i32* %103
br label %104
104: ; preds = %102, %97, %92
%105 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 4
%106 = load i8, i8* %105
%107 = sext i8 %106 to i32
%108 = icmp slt i32 %107, 48
br i1 %108, label %109, label %116
109: ; preds = %104
%110 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 4
%111 = load i8, i8* %110
%112 = sext i8 %111 to i32
%113 = icmp sgt i32 %112, 57
br i1 %113, label %114, label %116
114: ; preds = %109
%115 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 7
store i32 1, i32* %115
br label %116
116: ; preds = %114, %109, %104
%117 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 5
%118 = load i8, i8* %117
%119 = sext i8 %118 to i32
%120 = icmp slt i32 %119, 48
br i1 %120, label %121, label %128
121: ; preds = %116
%122 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 5
%123 = load i8, i8* %122
%124 = sext i8 %123 to i32
%125 = icmp sgt i32 %124, 57
br i1 %125, label %126, label %128
126: ; preds = %121
%127 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 8
store i32 1, i32* %127
br label %128
128: ; preds = %126, %121, %116
%129 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 6
%130 = load i8, i8* %129
%131 = sext i8 %130 to i32
%132 = icmp slt i32 %131, 48
br i1 %132, label %133, label %140
133: ; preds = %128
%134 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 6
%135 = load i8, i8* %134
%136 = sext i8 %135 to i32
%137 = icmp sgt i32 %136, 57
br i1 %137, label %138, label %140
138: ; preds = %133
%139 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 9
store i32 1, i32* %139
br label %140
140: ; preds = %138, %133, %128
%141 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 7
%142 = load i8, i8* %141
%143 = sext i8 %142 to i32
%144 = icmp slt i32 %143, 48
br i1 %144, label %145, label %152
145: ; preds = %140
%146 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 7
%147 = load i8, i8* %146
%148 = sext i8 %147 to i32
%149 = icmp sgt i32 %148, 57
br i1 %149, label %150, label %152
150: ; preds = %145
%151 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 10
store i32 1, i32* %151
br label %152
152: ; preds = %150, %145, %140
%153 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 8
%154 = load i8, i8* %153
%155 = sext i8 %154 to i32
%156 = icmp slt i32 %155, 48
br i1 %156, label %157, label %164
157: ; preds = %152
%158 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 8
%159 = load i8, i8* %158
%160 = sext i8 %159 to i32
%161 = icmp sgt i32 %160, 57
br i1 %161, label %162, label %164
162: ; preds = %157
%163 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 11
store i32 1, i32* %163
br label %164
164: ; preds = %162, %157, %152
store i32 0, i32* %4
br label %165
165: ; preds = %279, %164
%166 = load i32, i32* %4
%167 = icmp slt i32 %166, 10
br i1 %167, label %168, label %282
168: ; preds = %165
%169 = load i32, i32* %4
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %170
%172 = load i8, i8* %171
%173 = sext i8 %172 to i32
%174 = icmp eq i32 %173, 48
br i1 %174, label %175, label %179
175: ; preds = %168
%176 = load i32, i32* %4
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %177
store i32 0, i32* %178
br label %179
179: ; preds = %175, %168
%180 = load i32, i32* %4
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %181
%183 = load i8, i8* %182
%184 = sext i8 %183 to i32
%185 = icmp eq i32 %184, 49
br i1 %185, label %186, label %190
186: ; preds = %179
%187 = load i32, i32* %4
%188 = sext i32 %187 to i64
%189 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %188
store i32 1, i32* %189
br label %190
190: ; preds = %186, %179
%191 = load i32, i32* %4
%192 = sext i32 %191 to i64
%193 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %192
%194 = load i8, i8* %193
%195 = sext i8 %194 to i32
%196 = icmp eq i32 %195, 50
br i1 %196, label %197, label %201
197: ; preds = %190
%198 = load i32, i32* %4
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %199
store i32 2, i32* %200
br label %201
201: ; preds = %197, %190
%202 = load i32, i32* %4
%203 = sext i32 %202 to i64
%204 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %203
%205 = load i8, i8* %204
%206 = sext i8 %205 to i32
%207 = icmp eq i32 %206, 51
br i1 %207, label %208, label %212
208: ; preds = %201
%209 = load i32, i32* %4
%210 = sext i32 %209 to i64
%211 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %210
store i32 3, i32* %211
br label %212
212: ; preds = %208, %201
%213 = load i32, i32* %4
%214 = sext i32 %213 to i64
%215 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %214
%216 = load i8, i8* %215
%217 = sext i8 %216 to i32
%218 = icmp eq i32 %217, 52
br i1 %218, label %219, label %223
219: ; preds = %212
%220 = load i32, i32* %4
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %221
store i32 4, i32* %222
br label %223
223: ; preds = %219, %212
%224 = load i32, i32* %4
%225 = sext i32 %224 to i64
%226 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %225
%227 = load i8, i8* %226
%228 = sext i8 %227 to i32
%229 = icmp eq i32 %228, 53
br i1 %229, label %230, label %234
230: ; preds = %223
%231 = load i32, i32* %4
%232 = sext i32 %231 to i64
%233 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %232
store i32 5, i32* %233
br label %234
234: ; preds = %230, %223
%235 = load i32, i32* %4
%236 = sext i32 %235 to i64
%237 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %236
%238 = load i8, i8* %237
%239 = sext i8 %238 to i32
%240 = icmp eq i32 %239, 54
br i1 %240, label %241, label %245
241: ; preds = %234
%242 = load i32, i32* %4
%243 = sext i32 %242 to i64
%244 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %243
store i32 6, i32* %244
br label %245
245: ; preds = %241, %234
%246 = load i32, i32* %4
%247 = sext i32 %246 to i64
%248 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %247
%249 = load i8, i8* %248
%250 = sext i8 %249 to i32
%251 = icmp eq i32 %250, 55
br i1 %251, label %252, label %256
252: ; preds = %245
%253 = load i32, i32* %4
%254 = sext i32 %253 to i64
%255 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %254
store i32 7, i32* %255
br label %256
256: ; preds = %252, %245
%257 = load i32, i32* %4
%258 = sext i32 %257 to i64
%259 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %258
%260 = load i8, i8* %259
%261 = sext i8 %260 to i32
%262 = icmp eq i32 %261, 56
br i1 %262, label %263, label %267
263: ; preds = %256
%264 = load i32, i32* %4
%265 = sext i32 %264 to i64
%266 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %265
store i32 8, i32* %266
br label %267
267: ; preds = %263, %256
%268 = load i32, i32* %4
%269 = sext i32 %268 to i64
%270 = getelementptr inbounds [12 x i8], [12 x i8]* %2, i64 0, i64 %269
%271 = load i8, i8* %270
%272 = sext i8 %271 to i32
%273 = icmp eq i32 %272, 57
br i1 %273, label %274, label %278
274: ; preds = %267
%275 = load i32, i32* %4
%276 = sext i32 %275 to i64
%277 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 %276
store i32 9, i32* %277
br label %278
278: ; preds = %274, %267
br label %279
279: ; preds = %278
%280 = load i32, i32* %4
%281 = add nsw i32 %280, 1
store i32 %281, i32* %4
br label %165
282: ; preds = %165
%283 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 0
%284 = load i32, i32* %283
%285 = mul nsw i32 %284, 2
%286 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 1
%287 = load i32, i32* %286
%288 = mul nsw i32 %287, 4
%289 = add nsw i32 %285, %288
%290 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 2
%291 = load i32, i32* %290
%292 = mul nsw i32 %291, 8
%293 = add nsw i32 %289, %292
%294 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 3
%295 = load i32, i32* %294
%296 = mul nsw i32 %295, 5
%297 = add nsw i32 %293, %296
%298 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 4
%299 = load i32, i32* %298
%300 = mul nsw i32 %299, 10
%301 = add nsw i32 %297, %300
%302 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 5
%303 = load i32, i32* %302
%304 = mul nsw i32 %303, 9
%305 = add nsw i32 %301, %304
%306 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 6
%307 = load i32, i32* %306
%308 = mul nsw i32 %307, 7
%309 = add nsw i32 %305, %308
%310 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 7
%311 = load i32, i32* %310
%312 = mul nsw i32 %311, 3
%313 = add nsw i32 %309, %312
%314 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 8
%315 = load i32, i32* %314
%316 = mul nsw i32 %315, 6
%317 = add nsw i32 %313, %316
%318 = srem i32 %317, 11
%319 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 10
store i32 %318, i32* %319
%320 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 10
%321 = load i32, i32* %320
%322 = icmp eq i32 %321, 10
br i1 %322, label %323, label %325
323: ; preds = %282
%324 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 10
store i32 0, i32* %324
br label %325
325: ; preds = %323, %282
%326 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 10
%327 = load i32, i32* %326
%328 = getelementptr inbounds [10 x i32], [10 x i32]* %6, i64 0, i64 9
%329 = load i32, i32* %328
%330 = icmp ne i32 %327, %329
br i1 %330, label %331, label %333
331: ; preds = %325
%332 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 13
store i32 1, i32* %332
br label %333
333: ; preds = %331, %325
store i32 0, i32* %4
store i32 1, i32* %5
br label %334
334: ; preds = %345, %333
%335 = load i32, i32* %4
%336 = icmp slt i32 %335, 14
br i1 %336, label %337, label %348
337: ; preds = %334
%338 = load i32, i32* %4
%339 = sext i32 %338 to i64
%340 = getelementptr inbounds [13 x i32], [13 x i32]* %3, i64 0, i64 %339
%341 = load i32, i32* %340
%342 = icmp eq i32 %341, 1
br i1 %342, label %343, label %344
343: ; preds = %337
store i32 0, i32* %5
br label %344
344: ; preds = %343, %337
br label %345
345: ; preds = %344
%346 = load i32, i32* %4
%347 = add nsw i32 %346, 1
store i32 %347, i32* %4
br label %334
348: ; preds = %334
%349 = load i32, i32* %5
%350 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %349)
ret i32 0
}

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