#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 strlen(char *);
int main() {
  int i, j, k, b[26] = {0}, flag = 0;
  char a[100000], c = 97;
  gets(a);
  k = strlen(a);
  for (i = 0; i < 26; i++) {
    for (j = 0; j < k; j++) {
      if (c == a[j]) {
        b[i]++;
      }
    }
    c++;
  }
  if (k % 2 == 0) {
    for (i = 0; i < 26; i++) {
      if ((b[i] % 2) != 0) {
        printf("NO");
        flag = 6;
        break;
      }
    }
    if (flag != 6) {
      printf("YES");
    }
  }
  flag = 0;
  if (k % 2 != 0) {
    for (i = 0; i < 26; i++) {
      if ((b[i] % 2) != 0) {
        flag++;
      }
    }
    if (flag == 1) {
      printf("YES");
    } else {
      printf("NO");
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x18740,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x80(%rbp),%rdi
xor    %esi,%esi
mov    $0x68,%edx
call   1050 <memset@plt>
movl   $0x0,-0x84(%rbp)
movb   $0x61,-0x18731(%rbp)
lea    -0x18730(%rbp),%rdi
call   1060 <gets@plt>
lea    -0x18730(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x1a,-0x8(%rbp)
jge    120b <main+0xcb>
movl   $0x0,-0xc(%rbp)
mov    -0xc(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    11ef <main+0xaf>
movsbl -0x18731(%rbp),%eax
movslq -0xc(%rbp),%rcx
movsbl -0x18730(%rbp,%rcx,1),%ecx
ff
cmp    %ecx,%eax
jne    11dc <main+0x9c>
movslq -0x8(%rbp),%rax
mov    -0x80(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x80(%rbp,%rax,4)
jmp    11e1 <main+0xa1>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    11a6 <main+0x66>
mov    -0x18731(%rbp),%al
add    $0x1,%al
mov    %al,-0x18731(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1195 <main+0x55>
mov    -0x10(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1295 <main+0x155>
movl   $0x0,-0x8(%rbp)
cmpl   $0x1a,-0x8(%rbp)
jge    1277 <main+0x137>
movslq -0x8(%rbp),%rax
mov    -0x80(%rbp,%rax,4),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     1264 <main+0x124>
lea    0xdb0(%rip),%rdi
call   1040 <printf@plt>
movl   $0x6,-0x84(%rbp)
jmp    1277 <main+0x137>
jmp    1269 <main+0x129>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1226 <main+0xe6>
cmpl   $0x6,-0x84(%rbp)
je     1290 <main+0x150>
lea    0xd78(%rip),%rdi
call   1040 <printf@plt>
jmp    1295 <main+0x155>
movl   $0x0,-0x84(%rbp)
mov    -0x10(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     132e <main+0x1ee>
movl   $0x0,-0x8(%rbp)
cmpl   $0x1a,-0x8(%rbp)
jge    12ff <main+0x1bf>
movslq -0x8(%rbp),%rax
mov    -0x80(%rbp,%rax,4),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     12ec <main+0x1ac>
mov    -0x84(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x84(%rbp)
jmp    12f1 <main+0x1b1>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    12ba <main+0x17a>
cmpl   $0x1,-0x84(%rbp)
jne    131d <main+0x1dd>
lea    0xcf0(%rip),%rdi
call   1040 <printf@plt>
jmp    1329 <main+0x1e9>
lea    0xcdc(%rip),%rdi
call   1040 <printf@plt>
jmp    132e <main+0x1ee>
xor    %eax,%eax
add    $0x18740,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x18710,%rsp
pxor   %xmm0,%xmm0
movdqa %xmm0,0x50(%rsp)
movdqa %xmm0,0x40(%rsp)
movdqa %xmm0,0x30(%rsp)
movdqa %xmm0,0x20(%rsp)
movdqa %xmm0,0x10(%rsp)
movdqa %xmm0,(%rsp)
movq   $0x0,0x60(%rsp)
lea    0x70(%rsp),%rbx
mov    %rbx,%rdi
call   1050 <gets@plt>
mov    %rbx,%rdi
call   1030 <strlen@plt>
mov    %eax,%eax
mov    %eax,%ecx
and    $0xfffffffe,%ecx
mov    $0x61,%dl
xor    %esi,%esi
jmp    119d <main+0x6d>
nopw   0x0(%rax,%rax,1)
add    $0x1,%dl
add    $0x1,%rsi
cmp    $0x1a,%rsi
je     11df <main+0xaf>
test   %eax,%eax
jle    1190 <main+0x60>
xor    %edi,%edi
cmp    $0x1,%eax
jne    11c9 <main+0x99>
test   $0x1,%al
je     1190 <main+0x60>
cmp    0x70(%rsp,%rdi,1),%dl
jne    1190 <main+0x60>
addl   $0x1,(%rsp,%rsi,4)
jmp    1190 <main+0x60>
nopl   0x0(%rax,%rax,1)
add    $0x2,%rdi
cmp    %rdi,%rcx
je     11a8 <main+0x78>
cmp    0x70(%rsp,%rdi,1),%dl
jne    11d3 <main+0xa3>
addl   $0x1,(%rsp,%rsi,4)
cmp    0x71(%rsp,%rdi,1),%dl
jne    11c0 <main+0x90>
addl   $0x1,(%rsp,%rsi,4)
jmp    11c0 <main+0x90>
mov    (%rsp),%ecx
and    $0x1,%ecx
test   $0x1,%al
jne    1314 <main+0x1e4>
test   %ecx,%ecx
jne    13b8 <main+0x288>
testb  $0x1,0x4(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x8(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0xc(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x10(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x14(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x18(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x1c(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x20(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x24(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x28(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x2c(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x30(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x34(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x38(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x3c(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x40(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x44(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x48(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x4c(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x50(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x54(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x58(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x5c(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x60(%rsp)
jne    13b8 <main+0x288>
testb  $0x1,0x64(%rsp)
jne    13b8 <main+0x288>
lea    0xd04(%rip),%rdi
jmp    13bf <main+0x28f>
mov    0x4(%rsp),%eax
and    $0x1,%eax
movdqu 0x8(%rsp),%xmm0
movdqu 0x18(%rsp),%xmm1
movdqa 0xcd1(%rip),%xmm2
pand   %xmm2,%xmm1
pand   %xmm2,%xmm0
paddd  %xmm1,%xmm0
movdqu 0x38(%rsp),%xmm1
movdqu 0x58(%rsp),%xmm3
movdqu 0x28(%rsp),%xmm4
movdqu 0x48(%rsp),%xmm5
pand   %xmm2,%xmm5
pand   %xmm2,%xmm4
paddd  %xmm5,%xmm4
pand   %xmm2,%xmm3
pand   %xmm2,%xmm1
paddd  %xmm3,%xmm1
paddd  %xmm4,%xmm1
pshufd $0xee,%xmm1,%xmm2
paddd  %xmm1,%xmm2
pshufd $0x55,%xmm2,%xmm1
paddd  %xmm2,%xmm1
movd   %xmm1,%edx
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%esi
add    %edx,%esi
add    %eax,%esi
add    %ecx,%esi
cmp    $0x1,%esi
lea    0xc68(%rip),%rax
lea    0xc5e(%rip),%rdi
cmove  %rax,%rdi
jmp    13bf <main+0x28f>
lea    0xc51(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x18710,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [3 x i8] c"NO\00"
@.str.1 = [4 x i8] c"YES\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca [26 x i32]
%6 = alloca i32
%7 = alloca [100000 x i8]
%8 = alloca i8
store i32 0, i32* %1
%9 = bitcast [26 x i32]* %5 to i8*
store i32 0, i32* %6
store i8 97, i8* %8
%10 = getelementptr inbounds [100000 x i8], [100000 x i8]* %7, i64 0, i64 0
%11 = call i32 @gets(i8* %10)
%12 = getelementptr inbounds [100000 x i8], [100000 x i8]* %7, i64 0, i64 0
%13 = call i32 @strlen(i8* %12)
store i32 %13, i32* %4
store i32 0, i32* %2
br label %14
14: ; preds = %44, %0
%15 = load i32, i32* %2
%16 = icmp slt i32 %15, 26
br i1 %16, label %17, label %47
17: ; preds = %14
store i32 0, i32* %3
br label %18
18: ; preds = %38, %17
%19 = load i32, i32* %3
%20 = load i32, i32* %4
%21 = icmp slt i32 %19, %20
br i1 %21, label %22, label %41
22: ; preds = %18
%23 = load i8, i8* %8
%24 = sext i8 %23 to i32
%25 = load i32, i32* %3
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds [100000 x i8], [100000 x i8]* %7, i64 0, i64 %26
%28 = load i8, i8* %27
%29 = sext i8 %28 to i32
%30 = icmp eq i32 %24, %29
br i1 %30, label %31, label %37
31: ; preds = %22
%32 = load i32, i32* %2
%33 = sext i32 %32 to i64
%34 = getelementptr inbounds [26 x i32], [26 x i32]* %5, i64 0, i64 %33
%35 = load i32, i32* %34
%36 = add nsw i32 %35, 1
store i32 %36, i32* %34
br label %37
37: ; preds = %31, %22
br label %38
38: ; preds = %37
%39 = load i32, i32* %3
%40 = add nsw i32 %39, 1
store i32 %40, i32* %3
br label %18
41: ; preds = %18
%42 = load i8, i8* %8
%43 = add i8 %42, 1
store i8 %43, i8* %8
br label %44
44: ; preds = %41
%45 = load i32, i32* %2
%46 = add nsw i32 %45, 1
store i32 %46, i32* %2
br label %14
47: ; preds = %14
%48 = load i32, i32* %4
%49 = srem i32 %48, 2
%50 = icmp eq i32 %49, 0
br i1 %50, label %51, label %74
51: ; preds = %47
store i32 0, i32* %2
br label %52
52: ; preds = %65, %51
%53 = load i32, i32* %2
%54 = icmp slt i32 %53, 26
br i1 %54, label %55, label %68
55: ; preds = %52
%56 = load i32, i32* %2
%57 = sext i32 %56 to i64
%58 = getelementptr inbounds [26 x i32], [26 x i32]* %5, i64 0, i64 %57
%59 = load i32, i32* %58
%60 = srem i32 %59, 2
%61 = icmp ne i32 %60, 0
br i1 %61, label %62, label %64
62: ; preds = %55
%63 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0))
store i32 6, i32* %6
br label %68
64: ; preds = %55
br label %65
65: ; preds = %64
%66 = load i32, i32* %2
%67 = add nsw i32 %66, 1
store i32 %67, i32* %2
br label %52
68: ; preds = %62, %52
%69 = load i32, i32* %6
%70 = icmp ne i32 %69, 6
br i1 %70, label %71, label %73
71: ; preds = %68
%72 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
br label %73
73: ; preds = %71, %68
br label %74
74: ; preds = %73, %47
store i32 0, i32* %6
%75 = load i32, i32* %4
%76 = srem i32 %75, 2
%77 = icmp ne i32 %76, 0
br i1 %77, label %78, label %104
78: ; preds = %74
store i32 0, i32* %2
br label %79
79: ; preds = %93, %78
%80 = load i32, i32* %2
%81 = icmp slt i32 %80, 26
br i1 %81, label %82, label %96
82: ; preds = %79
%83 = load i32, i32* %2
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds [26 x i32], [26 x i32]* %5, i64 0, i64 %84
%86 = load i32, i32* %85
%87 = srem i32 %86, 2
%88 = icmp ne i32 %87, 0
br i1 %88, label %89, label %92
89: ; preds = %82
%90 = load i32, i32* %6
%91 = add nsw i32 %90, 1
store i32 %91, i32* %6
br label %92
92: ; preds = %89, %82
br label %93
93: ; preds = %92
%94 = load i32, i32* %2
%95 = add nsw i32 %94, 1
store i32 %95, i32* %2
br label %79
96: ; preds = %79
%97 = load i32, i32* %6
%98 = icmp eq i32 %97, 1
br i1 %98, label %99, label %101
99: ; preds = %96
%100 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
br label %103
101: ; preds = %96
%102 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0))
br label %103
103: ; preds = %101, %99
br label %104
104: ; preds = %103, %74
ret i32 0
}

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