#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 strlen(char *);
void judge(int *lh, int *ll, int m, int n, char s[60][60], char sc[100]) {
  int length, i, j, k, l;
  int x, y, flag;
  length = strlen(sc) - 1;
  for (i = 0; i <= length; i++)
    if (sc[i] >= 'A' && sc[i] <= 'Z')
      sc[i] = sc[i] - 'A' + 'a';
  for (i = 0; i < m; i++)
    for (j = 0; j < n; j++)
      if (sc[0] == s[i][j]) {
        x = i;
        y = j;
        flag = 0;
        if (x >= length) {
          for (l = 1; l <= length; l++)
            if (s[x - l][y] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (m - x >= length) {
          for (l = 1; l <= length; l++)
            if (s[x + l][y] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (n - y >= length) {
          for (l = 1; l <= length; l++)
            if (s[x][y + l] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (y >= length) {
          for (l = 1; l <= length; l++)
            if (s[x][y - l] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (x >= length && y >= length) {
          for (l = 1; l <= length; l++)
            if (s[x - l][y - l] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (x >= length && n - y >= length) {
          for (l = 1; l <= length; l++)
            if (s[x - l][y + l] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (m - x >= length && n - y >= length) {
          for (l = 1; l <= length; l++)
            if (s[x + l][y + l] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (m - x >= length && y >= length) {
          for (l = 1; l <= length; l++)
            if (s[x + l][y - l] != sc[l]) {
              flag++;
              break;
            }
        } else
          flag++;
        if (flag < 8) {
          *lh = x;
          *ll = y;
          return;
        }
      }
}


x86 assembly (clang, -O0):
<judge>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    %ecx,-0x18(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
mov    -0x28(%rbp),%rdi
call   1030 <strlen@plt>
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     11ac <judge+0x9c>
mov    -0x28(%rbp),%rax
movslq -0x30(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jl     1199 <judge+0x89>
mov    -0x28(%rbp),%rax
movslq -0x30(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5a,%eax
jg     1199 <judge+0x89>
mov    -0x28(%rbp),%rax
movslq -0x30(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
sub    $0x41,%eax
add    $0x61,%eax
mov    %al,%dl
mov    -0x28(%rbp),%rax
movslq -0x30(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
jmp    119e <judge+0x8e>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1144 <judge+0x34>
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    169d <judge+0x58d>
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    168a <judge+0x57a>
mov    -0x28(%rbp),%rax
movsbl (%rax),%eax
mov    -0x20(%rbp),%rcx
movslq -0x30(%rbp),%rdx
imul   $0x3c,%rdx,%rdx
add    %rdx,%rcx
movslq -0x34(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
jne    1677 <judge+0x567>
mov    -0x30(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,-0x44(%rbp)
movl   $0x0,-0x48(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1280 <judge+0x170>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     127b <judge+0x16b>
mov    -0x20(%rbp),%rax
mov    -0x40(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
movslq -0x44(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     1268 <judge+0x158>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    127b <judge+0x16b>
jmp    126d <judge+0x15d>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    121e <judge+0x10e>
jmp    1289 <judge+0x179>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x40(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1301 <judge+0x1f1>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     12fc <judge+0x1ec>
mov    -0x20(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
movslq -0x44(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     12e9 <judge+0x1d9>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    12fc <judge+0x1ec>
jmp    12ee <judge+0x1de>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    129f <judge+0x18f>
jmp    130a <judge+0x1fa>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x18(%rbp),%eax
sub    -0x44(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1382 <judge+0x272>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     137d <judge+0x26d>
mov    -0x20(%rbp),%rax
movslq -0x40(%rbp),%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
mov    -0x44(%rbp),%ecx
add    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     136a <judge+0x25a>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    137d <judge+0x26d>
jmp    136f <judge+0x25f>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1320 <judge+0x210>
jmp    138b <judge+0x27b>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1400 <judge+0x2f0>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     13fb <judge+0x2eb>
mov    -0x20(%rbp),%rax
movslq -0x40(%rbp),%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
mov    -0x44(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     13e8 <judge+0x2d8>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    13fb <judge+0x2eb>
jmp    13ed <judge+0x2dd>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    139e <judge+0x28e>
jmp    1409 <judge+0x2f9>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     148f <judge+0x37f>
mov    -0x44(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     148f <judge+0x37f>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     148a <judge+0x37a>
mov    -0x20(%rbp),%rax
mov    -0x40(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
mov    -0x44(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     1477 <judge+0x367>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    148a <judge+0x37a>
jmp    147c <judge+0x36c>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1428 <judge+0x318>
jmp    1498 <judge+0x388>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1521 <judge+0x411>
mov    -0x18(%rbp),%eax
sub    -0x44(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1521 <judge+0x411>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     151c <judge+0x40c>
mov    -0x20(%rbp),%rax
mov    -0x40(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
mov    -0x44(%rbp),%ecx
add    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     1509 <judge+0x3f9>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    151c <judge+0x40c>
jmp    150e <judge+0x3fe>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    14ba <judge+0x3aa>
jmp    152a <judge+0x41a>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x40(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     15b6 <judge+0x4a6>
mov    -0x18(%rbp),%eax
sub    -0x44(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     15b6 <judge+0x4a6>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     15b1 <judge+0x4a1>
mov    -0x20(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
mov    -0x44(%rbp),%ecx
add    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     159e <judge+0x48e>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    15b1 <judge+0x4a1>
jmp    15a3 <judge+0x493>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    154f <judge+0x43f>
jmp    15bf <judge+0x4af>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
mov    -0x14(%rbp),%eax
sub    -0x40(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1648 <judge+0x538>
mov    -0x44(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jl     1648 <judge+0x538>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jg     1643 <judge+0x533>
mov    -0x20(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
imul   $0x3c,%rcx,%rcx
add    %rcx,%rax
mov    -0x44(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
movslq %ecx,%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x28(%rbp),%rcx
movslq -0x3c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     1630 <judge+0x520>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    1643 <judge+0x533>
jmp    1635 <judge+0x525>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    15e1 <judge+0x4d1>
jmp    1651 <judge+0x541>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
cmpl   $0x8,-0x48(%rbp)
jge    1672 <judge+0x562>
mov    -0x40(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
jmp    169d <judge+0x58d>
jmp    1677 <judge+0x567>
jmp    167c <judge+0x56c>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    11c6 <judge+0xb6>
jmp    168f <judge+0x57f>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    11b3 <judge+0xa3>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<judge>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    %r9,%r13
mov    %r8,0x30(%rsp)
mov    %ecx,0x24(%rsp)
mov    %edx,%ebp
mov    %rsi,0x90(%rsp)
mov    %rdi,0x88(%rsp)
mov    %r9,%rdi
call   1030 <strlen@plt>
mov    %eax,%edi
mov    %eax,%r12d
test   %eax,%eax
jle    12cb <judge+0x1bb>
cmp    $0x8,%edi
jae    1160 <judge+0x50>
xor    %eax,%eax
jmp    137d <judge+0x26d>
mov    %r12d,%eax
and    $0xfffffff8,%eax
xor    %edx,%edx
movdqa 0xe90(%rip),%xmm0
movdqa 0xe98(%rip),%xmm1
pcmpeqd %xmm2,%xmm2
jmp    118d <judge+0x7d>
xchg   %ax,%ax
add    $0x8,%rdx
cmp    %rdx,%rax
je     12c2 <judge+0x1b2>
movq   0x0(%r13,%rdx,1),%xmm3
movdqa %xmm3,%xmm4
paddb  %xmm0,%xmm4
movdqa %xmm4,%xmm5
pmaxub %xmm1,%xmm5
pcmpeqb %xmm4,%xmm5
movd   %xmm5,%esi
not    %sil
test   $0x1,%sil
je     11c2 <judge+0xb2>
movd   %xmm3,%esi
add    $0x20,%sil
mov    %sil,0x0(%r13,%rdx,1)
movdqa %xmm5,%xmm4
pxor   %xmm2,%xmm4
movdqa %xmm4,%xmm6
pslld  $0x8,%xmm6
movd   %xmm6,%esi
shr    $0x10,%esi
test   $0x1,%sil
je     11f0 <judge+0xe0>
movd   %xmm3,%esi
shr    $0x8,%esi
add    $0x20,%sil
mov    %sil,0x1(%r13,%rdx,1)
pshuflw $0x55,%xmm5,%xmm6
pxor   %xmm2,%xmm6
pextrw $0x2,%xmm6,%esi
test   $0x1,%sil
je     1214 <judge+0x104>
movd   %xmm3,%esi
shr    $0x10,%esi
add    $0x20,%sil
mov    %sil,0x2(%r13,%rdx,1)
movdqa %xmm4,%xmm6
psllq  $0x18,%xmm6
pextrw $0x3,%xmm6,%esi
test   $0x1,%sil
je     1238 <judge+0x128>
movd   %xmm3,%esi
shr    $0x18,%esi
add    $0x20,%sil
mov    %sil,0x3(%r13,%rdx,1)
pshufd $0x55,%xmm5,%xmm5
pxor   %xmm2,%xmm5
pextrw $0x4,%xmm5,%esi
test   $0x1,%sil
je     125a <judge+0x14a>
pextrw $0x2,%xmm3,%esi
add    $0x20,%sil
mov    %sil,0x4(%r13,%rdx,1)
movdqa %xmm4,%xmm5
pslldq $0x5,%xmm5
pextrw $0x5,%xmm5,%esi
test   $0x1,%sil
je     127f <judge+0x16f>
pextrw $0x2,%xmm3,%esi
shr    $0x8,%esi
add    $0x20,%sil
mov    %sil,0x5(%r13,%rdx,1)
pextrw $0x3,%xmm4,%esi
test   $0x1,%sil
je     1298 <judge+0x188>
pextrw $0x3,%xmm3,%esi
add    $0x20,%sil
mov    %sil,0x6(%r13,%rdx,1)
pslldq $0x7,%xmm4
pextrw $0x7,%xmm4,%esi
test   $0x1,%sil
je     1180 <judge+0x70>
pextrw $0x3,%xmm3,%esi
shr    $0x8,%esi
add    $0x20,%sil
mov    %sil,0x7(%r13,%rdx,1)
jmp    1180 <judge+0x70>
cmp    %r12,%rax
jne    137d <judge+0x26d>
test   %ebp,%ebp
mov    0x30(%rsp),%r9
jle    1780 <judge+0x670>
lea    -0x1(%rdi),%eax
movslq 0x24(%rsp),%rcx
cltq
mov    %rax,0x80(%rsp)
mov    %ebp,%eax
mov    %rax,0x70(%rsp)
mov    %rcx,0x78(%rsp)
mov    %ecx,%ecx
lea    -0x3c(%r9),%rax
mov    %rax,0x68(%rsp)
lea    0x3c(%r9),%rax
mov    %rax,0x60(%rsp)
lea    0x1(%r13),%rax
mov    %rax,0x38(%rsp)
mov    %r12,%rax
neg    %rax
mov    %rax,0xb0(%rsp)
imul   $0x3d,%r12,%rax
mov    %rax,0x98(%rsp)
imul   $0x3b,%r12,%rax
mov    %rax,0xa8(%rsp)
lea    0x3d(%r9),%rax
mov    %rax,0x58(%rsp)
lea    0x3b(%r9),%rax
mov    %rax,0x50(%rsp)
xor    %esi,%esi
mov    %r9,0x48(%rsp)
mov    %rdi,0x18(%rsp)
mov    %rcx,0xa0(%rsp)
jmp    13cd <judge+0x2bd>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
cmp    %rax,%r12
je     12cb <judge+0x1bb>
movzbl 0x0(%r13,%rax,1),%edx
lea    -0x41(%rdx),%esi
cmp    $0x19,%sil
ja     1370 <judge+0x260>
add    $0x20,%dl
mov    %dl,0x0(%r13,%rax,1)
jmp    1370 <judge+0x260>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%rsi
addq   $0x3c,0x68(%rsp)
addq   $0x3c,0x60(%rsp)
addq   $0x3c,0x48(%rsp)
addq   $0x3c,0x58(%rsp)
addq   $0x3c,0x50(%rsp)
cmp    0x70(%rsp),%rsi
je     1780 <judge+0x670>
cmpl   $0x0,0x24(%rsp)
jle    13a0 <judge+0x290>
cmp    $0x2,%edi
setl   %dl
mov    0x0(%r13),%bl
xor    %ebp,%ebp
cmp    0x80(%rsp),%rsi
setl   %bpl
mov    0x70(%rsp),%rax
sub    %rsi,%rax
mov    %rax,0x28(%rsp)
mov    %ebp,0x44(%rsp)
or     %bpl,%dl
mov    %dl,0xf(%rsp)
mov    0x50(%rsp),%r14
mov    0x58(%rsp),%r11
mov    0x48(%rsp),%r10
mov    0x60(%rsp),%r15
mov    0x68(%rsp),%rbp
xor    %edx,%edx
mov    %rsi,0x10(%rsp)
mov    %bl,0xe(%rsp)
jmp    146b <judge+0x35b>
nopw   0x0(%rax,%rax,1)
add    $0x1,%r8d
cmp    $0x7,%r8d
mov    0xa0(%rsp),%rcx
mov    0xe(%rsp),%bl
jle    176c <judge+0x65c>
add    $0x1,%rdx
add    $0x1,%rbp
add    $0x1,%r15
add    $0x1,%r10
add    $0x1,%r11
add    $0x1,%r14
cmp    %rcx,%rdx
je     13a0 <judge+0x290>
imul   $0x3c,%rsi,%rax
add    %r9,%rax
cmp    (%rdx,%rax,1),%bl
jne    144a <judge+0x33a>
mov    0x44(%rsp),%r8d
cmpb   $0x0,0xf(%rsp)
mov    0x80(%rsp),%rbx
je     14a0 <judge+0x390>
cmp    %rbx,0x28(%rsp)
jge    14de <judge+0x3ce>
add    $0x1,%r8d
jmp    1521 <judge+0x411>
nopl   0x0(%rax,%rax,1)
mov    $0x1,%eax
mov    %rbp,%rsi
nopl   0x0(%rax,%rax,1)
movzbl (%rsi),%ecx
cmp    0x0(%r13,%rax,1),%cl
jne    14cc <judge+0x3bc>
add    $0x1,%rax
add    $0xffffffffffffffc4,%rsi
cmp    %rax,%r12
jne    14b0 <judge+0x3a0>
xor    %r8d,%r8d
jmp    14d2 <judge+0x3c2>
mov    $0x1,%r8d
mov    0x10(%rsp),%rsi
cmp    %rbx,0x28(%rsp)
jl     1492 <judge+0x382>
cmp    $0x2,%edi
jl     1509 <judge+0x3f9>
mov    $0x1,%eax
mov    %r15,%rsi
nopl   0x0(%rax,%rax,1)
movzbl (%rsi),%ecx
cmp    0x0(%r13,%rax,1),%cl
jne    1518 <judge+0x408>
add    $0x1,%rax
add    $0x3c,%rsi
cmp    %rax,%r12
jne    14f0 <judge+0x3e0>
jmp    151c <judge+0x40c>
mov    0x78(%rsp),%rax
sub    %rdx,%rax
cmp    %rbx,%rax
jl     152e <judge+0x41e>
jmp    1570 <judge+0x460>
add    $0x1,%r8d
mov    0x10(%rsp),%rsi
mov    0x78(%rsp),%rax
sub    %rdx,%rax
cmp    %rbx,%rax
jge    1542 <judge+0x432>
add    $0x1,%r8d
mov    $0x1,%al
cmp    %rbx,%rdx
jge    1577 <judge+0x467>
add    $0x1,%r8d
jmp    15d0 <judge+0x4c0>
cmp    $0x2,%edi
jl     1570 <judge+0x460>
mov    $0x1,%eax
nopl   0x0(%rax)
movzbl (%r10,%rax,1),%ecx
cmp    0x0(%r13,%rax,1),%cl
jne    1567 <judge+0x457>
add    $0x1,%rax
cmp    %rax,%r12
jne    1550 <judge+0x440>
jmp    1570 <judge+0x460>
add    $0x1,%r8d
nopl   0x0(%rax,%rax,1)
xor    %eax,%eax
cmp    %rbx,%rdx
jl     1539 <judge+0x429>
cmp    $0x2,%edi
jl     15ad <judge+0x49d>
mov    $0xffffffffffffffff,%rdi
mov    0x38(%rsp),%rsi
nopl   0x0(%rax,%rax,1)
movzbl (%r10,%rdi,1),%ecx
cmp    (%rsi),%cl
jne    15b4 <judge+0x4a4>
add    $0xffffffffffffffff,%rdi
add    $0x1,%rsi
cmp    %rdi,0xb0(%rsp)
jne    1590 <judge+0x480>
jmp    15b8 <judge+0x4a8>
cmp    %rbx,%rsi
jl     15d0 <judge+0x4c0>
jmp    15d4 <judge+0x4c4>
add    $0x1,%r8d
mov    0x10(%rsp),%rsi
cmp    %rbx,%rsi
mov    0x18(%rsp),%rdi
jge    16ff <judge+0x5ef>
nopl   0x0(%rax,%rax,1)
add    $0x1,%r8d
cmp    %rbx,%rsi
setl   %cl
or     %al,%cl
je     15f0 <judge+0x4e0>
add    $0x1,%r8d
jmp    164c <judge+0x53c>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
cmp    $0x2,%edi
jl     1630 <judge+0x520>
mov    $0xffffffffffffffc5,%rdi
mov    0x38(%rsp),%rsi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movzbl (%r10,%rdi,1),%ecx
cmp    (%rsi),%cl
jne    163e <judge+0x52e>
add    $0xffffffffffffffc5,%rdi
add    $0x1,%rsi
mov    0xa8(%rsp),%rcx
add    %rdi,%rcx
jne    1610 <judge+0x500>
jmp    1642 <judge+0x532>
cmp    %rbx,0x28(%rsp)
setl   %cl
or     %al,%cl
jne    1658 <judge+0x548>
jmp    16a0 <judge+0x590>
add    $0x1,%r8d
mov    0x18(%rsp),%rdi
mov    0x10(%rsp),%rsi
cmp    %rbx,0x28(%rsp)
setl   %cl
or     %al,%cl
je     1668 <judge+0x558>
add    $0x1,%r8d
cmp    %rbx,0x28(%rsp)
jge    16ab <judge+0x59b>
jmp    1430 <judge+0x320>
cmp    $0x2,%edi
jl     16a0 <judge+0x590>
mov    $0x1,%eax
mov    %r11,%rsi
cs nopw 0x0(%rax,%rax,1)
nop
movzbl (%rsi),%ecx
cmp    0x0(%r13,%rax,1),%cl
jne    1740 <judge+0x630>
add    $0x1,%rax
add    $0x3d,%rsi
cmp    %rax,%r12
jne    1680 <judge+0x570>
mov    0x10(%rsp),%rsi
cmp    %rbx,0x28(%rsp)
jl     1430 <judge+0x320>
cmp    %rbx,%rdx
jl     1430 <judge+0x320>
cmp    $0x2,%edi
jl     1434 <judge+0x324>
mov    $0x1,%eax
mov    %r14,%rsi
cs nopw 0x0(%rax,%rax,1)
nop
movzbl (%rsi),%ecx
cmp    0x0(%r13,%rax,1),%cl
jne    16f1 <judge+0x5e1>
add    $0x1,%rax
add    $0x3b,%rsi
cmp    %rax,%r12
jne    16d0 <judge+0x5c0>
mov    0x10(%rsp),%rsi
jmp    1434 <judge+0x324>
add    $0x1,%r8d
mov    0x10(%rsp),%rsi
jmp    1434 <judge+0x324>
cmp    $0x2,%edi
jl     15d4 <judge+0x4c4>
mov    $0xffffffffffffffc3,%r9
mov    0x38(%rsp),%rdi
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movzbl (%r10,%r9,1),%ecx
cmp    (%rdi),%cl
jne    1759 <judge+0x649>
add    $0xffffffffffffffc3,%r9
add    $0x1,%rdi
mov    0x98(%rsp),%rcx
add    %r9,%rcx
jne    1720 <judge+0x610>
jmp    175d <judge+0x64d>
add    $0x1,%r8d
mov    0x10(%rsp),%rsi
cmp    %rbx,0x28(%rsp)
jge    16ab <judge+0x59b>
jmp    1430 <judge+0x320>
add    $0x1,%r8d
mov    0x30(%rsp),%r9
mov    0x18(%rsp),%rdi
jmp    15d4 <judge+0x4c4>
mov    0x88(%rsp),%rax
mov    %esi,(%rax)
mov    0x90(%rsp),%rax
mov    %edx,(%rax)
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @judge(i32* %0, i32* %1, i32 %2, i32 %3, [60 x i8]* %4, i8* %5) {
%7 = alloca i32*
%8 = alloca i32*
%9 = alloca i32
%10 = alloca i32
%11 = alloca [60 x i8]*
%12 = alloca i8*
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
store i32* %0, i32** %7
store i32* %1, i32** %8
store i32 %2, i32* %9
store i32 %3, i32* %10
store [60 x i8]* %4, [60 x i8]** %11
store i8* %5, i8** %12
%21 = load i8*, i8** %12
%22 = call i32 @strlen(i8* %21)
%23 = sub nsw i32 %22, 1
store i32 %23, i32* %13
store i32 0, i32* %14
br label %24
24: ; preds = %59, %6
%25 = load i32, i32* %14
%26 = load i32, i32* %13
%27 = icmp sle i32 %25, %26
br i1 %27, label %28, label %62
28: ; preds = %24
%29 = load i8*, i8** %12
%30 = load i32, i32* %14
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds i8, i8* %29, i64 %31
%33 = load i8, i8* %32
%34 = sext i8 %33 to i32
%35 = icmp sge i32 %34, 65
br i1 %35, label %36, label %58
36: ; preds = %28
%37 = load i8*, i8** %12
%38 = load i32, i32* %14
%39 = sext i32 %38 to i64
%40 = getelementptr inbounds i8, i8* %37, i64 %39
%41 = load i8, i8* %40
%42 = sext i8 %41 to i32
%43 = icmp sle i32 %42, 90
br i1 %43, label %44, label %58
44: ; preds = %36
%45 = load i8*, i8** %12
%46 = load i32, i32* %14
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds i8, i8* %45, i64 %47
%49 = load i8, i8* %48
%50 = sext i8 %49 to i32
%51 = sub nsw i32 %50, 65
%52 = add nsw i32 %51, 97
%53 = trunc i32 %52 to i8
%54 = load i8*, i8** %12
%55 = load i32, i32* %14
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds i8, i8* %54, i64 %56
store i8 %53, i8* %57
br label %58
58: ; preds = %44, %36, %28
br label %59
59: ; preds = %58
%60 = load i32, i32* %14
%61 = add nsw i32 %60, 1
store i32 %61, i32* %14
br label %24
62: ; preds = %24
store i32 0, i32* %14
br label %63
63: ; preds = %451, %62
%64 = load i32, i32* %14
%65 = load i32, i32* %9
%66 = icmp slt i32 %64, %65
br i1 %66, label %67, label %454
67: ; preds = %63
store i32 0, i32* %15
br label %68
68: ; preds = %447, %67
%69 = load i32, i32* %15
%70 = load i32, i32* %10
%71 = icmp slt i32 %69, %70
br i1 %71, label %72, label %450
72: ; preds = %68
%73 = load i8*, i8** %12
%74 = getelementptr inbounds i8, i8* %73, i64 0
%75 = load i8, i8* %74
%76 = sext i8 %75 to i32
%77 = load [60 x i8]*, [60 x i8]** %11
%78 = load i32, i32* %14
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [60 x i8], [60 x i8]* %77, i64 %79
%81 = load i32, i32* %15
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds [60 x i8], [60 x i8]* %80, i64 0, i64 %82
%84 = load i8, i8* %83
%85 = sext i8 %84 to i32
%86 = icmp eq i32 %76, %85
br i1 %86, label %87, label %446
87: ; preds = %72
%88 = load i32, i32* %14
store i32 %88, i32* %18
%89 = load i32, i32* %15
store i32 %89, i32* %19
store i32 0, i32* %20
%90 = load i32, i32* %18
%91 = load i32, i32* %13
%92 = icmp sge i32 %90, %91
br i1 %92, label %93, label %125
93: ; preds = %87
store i32 1, i32* %17
br label %94
94: ; preds = %121, %93
%95 = load i32, i32* %17
%96 = load i32, i32* %13
%97 = icmp sle i32 %95, %96
br i1 %97, label %98, label %124
98: ; preds = %94
%99 = load [60 x i8]*, [60 x i8]** %11
%100 = load i32, i32* %18
%101 = load i32, i32* %17
%102 = sub nsw i32 %100, %101
%103 = sext i32 %102 to i64
%104 = getelementptr inbounds [60 x i8], [60 x i8]* %99, i64 %103
%105 = load i32, i32* %19
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds [60 x i8], [60 x i8]* %104, i64 0, i64 %106
%108 = load i8, i8* %107
%109 = sext i8 %108 to i32
%110 = load i8*, i8** %12
%111 = load i32, i32* %17
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds i8, i8* %110, i64 %112
%114 = load i8, i8* %113
%115 = sext i8 %114 to i32
%116 = icmp ne i32 %109, %115
br i1 %116, label %117, label %120
117: ; preds = %98
%118 = load i32, i32* %20
%119 = add nsw i32 %118, 1
store i32 %119, i32* %20
br label %124
120: ; preds = %98
br label %121
121: ; preds = %120
%122 = load i32, i32* %17
%123 = add nsw i32 %122, 1
store i32 %123, i32* %17
br label %94
124: ; preds = %117, %94
br label %128
125: ; preds = %87
%126 = load i32, i32* %20
%127 = add nsw i32 %126, 1
store i32 %127, i32* %20
br label %128
128: ; preds = %125, %124
%129 = load i32, i32* %9
%130 = load i32, i32* %18
%131 = sub nsw i32 %129, %130
%132 = load i32, i32* %13
%133 = icmp sge i32 %131, %132
br i1 %133, label %134, label %166
134: ; preds = %128
store i32 1, i32* %17
br label %135
135: ; preds = %162, %134
%136 = load i32, i32* %17
%137 = load i32, i32* %13
%138 = icmp sle i32 %136, %137
br i1 %138, label %139, label %165
139: ; preds = %135
%140 = load [60 x i8]*, [60 x i8]** %11
%141 = load i32, i32* %18
%142 = load i32, i32* %17
%143 = add nsw i32 %141, %142
%144 = sext i32 %143 to i64
%145 = getelementptr inbounds [60 x i8], [60 x i8]* %140, i64 %144
%146 = load i32, i32* %19
%147 = sext i32 %146 to i64
%148 = getelementptr inbounds [60 x i8], [60 x i8]* %145, i64 0, i64 %147
%149 = load i8, i8* %148
%150 = sext i8 %149 to i32
%151 = load i8*, i8** %12
%152 = load i32, i32* %17
%153 = sext i32 %152 to i64
%154 = getelementptr inbounds i8, i8* %151, i64 %153
%155 = load i8, i8* %154
%156 = sext i8 %155 to i32
%157 = icmp ne i32 %150, %156
br i1 %157, label %158, label %161
158: ; preds = %139
%159 = load i32, i32* %20
%160 = add nsw i32 %159, 1
store i32 %160, i32* %20
br label %165
161: ; preds = %139
br label %162
162: ; preds = %161
%163 = load i32, i32* %17
%164 = add nsw i32 %163, 1
store i32 %164, i32* %17
br label %135
165: ; preds = %158, %135
br label %169
166: ; preds = %128
%167 = load i32, i32* %20
%168 = add nsw i32 %167, 1
store i32 %168, i32* %20
br label %169
169: ; preds = %166, %165
%170 = load i32, i32* %10
%171 = load i32, i32* %19
%172 = sub nsw i32 %170, %171
%173 = load i32, i32* %13
%174 = icmp sge i32 %172, %173
br i1 %174, label %175, label %207
175: ; preds = %169
store i32 1, i32* %17
br label %176
176: ; preds = %203, %175
%177 = load i32, i32* %17
%178 = load i32, i32* %13
%179 = icmp sle i32 %177, %178
br i1 %179, label %180, label %206
180: ; preds = %176
%181 = load [60 x i8]*, [60 x i8]** %11
%182 = load i32, i32* %18
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [60 x i8], [60 x i8]* %181, i64 %183
%185 = load i32, i32* %19
%186 = load i32, i32* %17
%187 = add nsw i32 %185, %186
%188 = sext i32 %187 to i64
%189 = getelementptr inbounds [60 x i8], [60 x i8]* %184, i64 0, i64 %188
%190 = load i8, i8* %189
%191 = sext i8 %190 to i32
%192 = load i8*, i8** %12
%193 = load i32, i32* %17
%194 = sext i32 %193 to i64
%195 = getelementptr inbounds i8, i8* %192, i64 %194
%196 = load i8, i8* %195
%197 = sext i8 %196 to i32
%198 = icmp ne i32 %191, %197
br i1 %198, label %199, label %202
199: ; preds = %180
%200 = load i32, i32* %20
%201 = add nsw i32 %200, 1
store i32 %201, i32* %20
br label %206
202: ; preds = %180
br label %203
203: ; preds = %202
%204 = load i32, i32* %17
%205 = add nsw i32 %204, 1
store i32 %205, i32* %17
br label %176
206: ; preds = %199, %176
br label %210
207: ; preds = %169
%208 = load i32, i32* %20
%209 = add nsw i32 %208, 1
store i32 %209, i32* %20
br label %210
210: ; preds = %207, %206
%211 = load i32, i32* %19
%212 = load i32, i32* %13
%213 = icmp sge i32 %211, %212
br i1 %213, label %214, label %246
214: ; preds = %210
store i32 1, i32* %17
br label %215
215: ; preds = %242, %214
%216 = load i32, i32* %17
%217 = load i32, i32* %13
%218 = icmp sle i32 %216, %217
br i1 %218, label %219, label %245
219: ; preds = %215
%220 = load [60 x i8]*, [60 x i8]** %11
%221 = load i32, i32* %18
%222 = sext i32 %221 to i64
%223 = getelementptr inbounds [60 x i8], [60 x i8]* %220, i64 %222
%224 = load i32, i32* %19
%225 = load i32, i32* %17
%226 = sub nsw i32 %224, %225
%227 = sext i32 %226 to i64
%228 = getelementptr inbounds [60 x i8], [60 x i8]* %223, i64 0, i64 %227
%229 = load i8, i8* %228
%230 = sext i8 %229 to i32
%231 = load i8*, i8** %12
%232 = load i32, i32* %17
%233 = sext i32 %232 to i64
%234 = getelementptr inbounds i8, i8* %231, i64 %233
%235 = load i8, i8* %234
%236 = sext i8 %235 to i32
%237 = icmp ne i32 %230, %236
br i1 %237, label %238, label %241
238: ; preds = %219
%239 = load i32, i32* %20
%240 = add nsw i32 %239, 1
store i32 %240, i32* %20
br label %245
241: ; preds = %219
br label %242
242: ; preds = %241
%243 = load i32, i32* %17
%244 = add nsw i32 %243, 1
store i32 %244, i32* %17
br label %215
245: ; preds = %238, %215
br label %249
246: ; preds = %210
%247 = load i32, i32* %20
%248 = add nsw i32 %247, 1
store i32 %248, i32* %20
br label %249
249: ; preds = %246, %245
%250 = load i32, i32* %18
%251 = load i32, i32* %13
%252 = icmp sge i32 %250, %251
br i1 %252, label %253, label %291
253: ; preds = %249
%254 = load i32, i32* %19
%255 = load i32, i32* %13
%256 = icmp sge i32 %254, %255
br i1 %256, label %257, label %291
257: ; preds = %253
store i32 1, i32* %17
br label %258
258: ; preds = %287, %257
%259 = load i32, i32* %17
%260 = load i32, i32* %13
%261 = icmp sle i32 %259, %260
br i1 %261, label %262, label %290
262: ; preds = %258
%263 = load [60 x i8]*, [60 x i8]** %11
%264 = load i32, i32* %18
%265 = load i32, i32* %17
%266 = sub nsw i32 %264, %265
%267 = sext i32 %266 to i64
%268 = getelementptr inbounds [60 x i8], [60 x i8]* %263, i64 %267
%269 = load i32, i32* %19
%270 = load i32, i32* %17
%271 = sub nsw i32 %269, %270
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds [60 x i8], [60 x i8]* %268, i64 0, i64 %272
%274 = load i8, i8* %273
%275 = sext i8 %274 to i32
%276 = load i8*, i8** %12
%277 = load i32, i32* %17
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds i8, i8* %276, i64 %278
%280 = load i8, i8* %279
%281 = sext i8 %280 to i32
%282 = icmp ne i32 %275, %281
br i1 %282, label %283, label %286
283: ; preds = %262
%284 = load i32, i32* %20
%285 = add nsw i32 %284, 1
store i32 %285, i32* %20
br label %290
286: ; preds = %262
br label %287
287: ; preds = %286
%288 = load i32, i32* %17
%289 = add nsw i32 %288, 1
store i32 %289, i32* %17
br label %258
290: ; preds = %283, %258
br label %294
291: ; preds = %253, %249
%292 = load i32, i32* %20
%293 = add nsw i32 %292, 1
store i32 %293, i32* %20
br label %294
294: ; preds = %291, %290
%295 = load i32, i32* %18
%296 = load i32, i32* %13
%297 = icmp sge i32 %295, %296
br i1 %297, label %298, label %338
298: ; preds = %294
%299 = load i32, i32* %10
%300 = load i32, i32* %19
%301 = sub nsw i32 %299, %300
%302 = load i32, i32* %13
%303 = icmp sge i32 %301, %302
br i1 %303, label %304, label %338
304: ; preds = %298
store i32 1, i32* %17
br label %305
305: ; preds = %334, %304
%306 = load i32, i32* %17
%307 = load i32, i32* %13
%308 = icmp sle i32 %306, %307
br i1 %308, label %309, label %337
309: ; preds = %305
%310 = load [60 x i8]*, [60 x i8]** %11
%311 = load i32, i32* %18
%312 = load i32, i32* %17
%313 = sub nsw i32 %311, %312
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds [60 x i8], [60 x i8]* %310, i64 %314
%316 = load i32, i32* %19
%317 = load i32, i32* %17
%318 = add nsw i32 %316, %317
%319 = sext i32 %318 to i64
%320 = getelementptr inbounds [60 x i8], [60 x i8]* %315, i64 0, i64 %319
%321 = load i8, i8* %320
%322 = sext i8 %321 to i32
%323 = load i8*, i8** %12
%324 = load i32, i32* %17
%325 = sext i32 %324 to i64
%326 = getelementptr inbounds i8, i8* %323, i64 %325
%327 = load i8, i8* %326
%328 = sext i8 %327 to i32
%329 = icmp ne i32 %322, %328
br i1 %329, label %330, label %333
330: ; preds = %309
%331 = load i32, i32* %20
%332 = add nsw i32 %331, 1
store i32 %332, i32* %20
br label %337
333: ; preds = %309
br label %334
334: ; preds = %333
%335 = load i32, i32* %17
%336 = add nsw i32 %335, 1
store i32 %336, i32* %17
br label %305
337: ; preds = %330, %305
br label %341
338: ; preds = %298, %294
%339 = load i32, i32* %20
%340 = add nsw i32 %339, 1
store i32 %340, i32* %20
br label %341
341: ; preds = %338, %337
%342 = load i32, i32* %9
%343 = load i32, i32* %18
%344 = sub nsw i32 %342, %343
%345 = load i32, i32* %13
%346 = icmp sge i32 %344, %345
br i1 %346, label %347, label %387
347: ; preds = %341
%348 = load i32, i32* %10
%349 = load i32, i32* %19
%350 = sub nsw i32 %348, %349
%351 = load i32, i32* %13
%352 = icmp sge i32 %350, %351
br i1 %352, label %353, label %387
353: ; preds = %347
store i32 1, i32* %17
br label %354
354: ; preds = %383, %353
%355 = load i32, i32* %17
%356 = load i32, i32* %13
%357 = icmp sle i32 %355, %356
br i1 %357, label %358, label %386
358: ; preds = %354
%359 = load [60 x i8]*, [60 x i8]** %11
%360 = load i32, i32* %18
%361 = load i32, i32* %17
%362 = add nsw i32 %360, %361
%363 = sext i32 %362 to i64
%364 = getelementptr inbounds [60 x i8], [60 x i8]* %359, i64 %363
%365 = load i32, i32* %19
%366 = load i32, i32* %17
%367 = add nsw i32 %365, %366
%368 = sext i32 %367 to i64
%369 = getelementptr inbounds [60 x i8], [60 x i8]* %364, i64 0, i64 %368
%370 = load i8, i8* %369
%371 = sext i8 %370 to i32
%372 = load i8*, i8** %12
%373 = load i32, i32* %17
%374 = sext i32 %373 to i64
%375 = getelementptr inbounds i8, i8* %372, i64 %374
%376 = load i8, i8* %375
%377 = sext i8 %376 to i32
%378 = icmp ne i32 %371, %377
br i1 %378, label %379, label %382
379: ; preds = %358
%380 = load i32, i32* %20
%381 = add nsw i32 %380, 1
store i32 %381, i32* %20
br label %386
382: ; preds = %358
br label %383
383: ; preds = %382
%384 = load i32, i32* %17
%385 = add nsw i32 %384, 1
store i32 %385, i32* %17
br label %354
386: ; preds = %379, %354
br label %390
387: ; preds = %347, %341
%388 = load i32, i32* %20
%389 = add nsw i32 %388, 1
store i32 %389, i32* %20
br label %390
390: ; preds = %387, %386
%391 = load i32, i32* %9
%392 = load i32, i32* %18
%393 = sub nsw i32 %391, %392
%394 = load i32, i32* %13
%395 = icmp sge i32 %393, %394
br i1 %395, label %396, label %434
396: ; preds = %390
%397 = load i32, i32* %19
%398 = load i32, i32* %13
%399 = icmp sge i32 %397, %398
br i1 %399, label %400, label %434
400: ; preds = %396
store i32 1, i32* %17
br label %401
401: ; preds = %430, %400
%402 = load i32, i32* %17
%403 = load i32, i32* %13
%404 = icmp sle i32 %402, %403
br i1 %404, label %405, label %433
405: ; preds = %401
%406 = load [60 x i8]*, [60 x i8]** %11
%407 = load i32, i32* %18
%408 = load i32, i32* %17
%409 = add nsw i32 %407, %408
%410 = sext i32 %409 to i64
%411 = getelementptr inbounds [60 x i8], [60 x i8]* %406, i64 %410
%412 = load i32, i32* %19
%413 = load i32, i32* %17
%414 = sub nsw i32 %412, %413
%415 = sext i32 %414 to i64
%416 = getelementptr inbounds [60 x i8], [60 x i8]* %411, i64 0, i64 %415
%417 = load i8, i8* %416
%418 = sext i8 %417 to i32
%419 = load i8*, i8** %12
%420 = load i32, i32* %17
%421 = sext i32 %420 to i64
%422 = getelementptr inbounds i8, i8* %419, i64 %421
%423 = load i8, i8* %422
%424 = sext i8 %423 to i32
%425 = icmp ne i32 %418, %424
br i1 %425, label %426, label %429
426: ; preds = %405
%427 = load i32, i32* %20
%428 = add nsw i32 %427, 1
store i32 %428, i32* %20
br label %433
429: ; preds = %405
br label %430
430: ; preds = %429
%431 = load i32, i32* %17
%432 = add nsw i32 %431, 1
store i32 %432, i32* %17
br label %401
433: ; preds = %426, %401
br label %437
434: ; preds = %396, %390
%435 = load i32, i32* %20
%436 = add nsw i32 %435, 1
store i32 %436, i32* %20
br label %437
437: ; preds = %434, %433
%438 = load i32, i32* %20
%439 = icmp slt i32 %438, 8
br i1 %439, label %440, label %445
440: ; preds = %437
%441 = load i32, i32* %18
%442 = load i32*, i32** %7
store i32 %441, i32* %442
%443 = load i32, i32* %19
%444 = load i32*, i32** %8
store i32 %443, i32* %444
br label %454
445: ; preds = %437
br label %446
446: ; preds = %445, %72
br label %447
447: ; preds = %446
%448 = load i32, i32* %15
%449 = add nsw i32 %448, 1
store i32 %449, i32* %15
br label %68
450: ; preds = %68
br label %451
451: ; preds = %450
%452 = load i32, i32* %14
%453 = add nsw i32 %452, 1
store i32 %453, i32* %14
br label %63
454: ; preds = %440, %63
ret void
}

LLVM IR (-O2):
define void @judge(i32* nocapture writeonly %0, i32* nocapture writeonly %1, i32 %2, i32 %3, [60 x i8]* nocapture %4, i8* %5) {
%7 = tail call i32 @strlen(i8* %5)
%8 = add nsw i32 %7, -1
%9 = icmp sgt i32 %7, 0
br i1 %9, label %10, label %83
10: ; preds = %6
%11 = zext i32 %7 to i64
%12 = icmp ult i32 %7, 8
br i1 %12, label %81, label %13
13: ; preds = %10
%14 = and i64 %11, 4294967288
br label %15
15: ; preds = %76, %13
%16 = phi i64 [ 0, %13 ], [ %77, %76 ]
%17 = getelementptr inbounds i8, i8* %5, i64 %16
%18 = bitcast i8* %17 to <8 x i8>*
%19 = load <8 x i8>, <8 x i8>* %18
%20 = add <8 x i8> %19, <i8 -65, i8 -65, i8 -65, i8 -65, i8 -65, i8 -65, i8 -65, i8 -65>
%21 = icmp ult <8 x i8> %20, <i8 26, i8 26, i8 26, i8 26, i8 26, i8 26, i8 26, i8 26>
%22 = extractelement <8 x i1> %21, i64 0
br i1 %22, label %23, label %27
23: ; preds = %15
%24 = extractelement <8 x i8> %19, i64 0
%25 = add nuw nsw i8 %24, 32
%26 = getelementptr inbounds i8, i8* %5, i64 %16
store i8 %25, i8* %26
br label %27
27: ; preds = %23, %15
%28 = extractelement <8 x i1> %21, i64 1
br i1 %28, label %29, label %34
29: ; preds = %27
%30 = or i64 %16, 1
%31 = extractelement <8 x i8> %19, i64 1
%32 = add nuw nsw i8 %31, 32
%33 = getelementptr inbounds i8, i8* %5, i64 %30
store i8 %32, i8* %33
br label %34
34: ; preds = %29, %27
%35 = extractelement <8 x i1> %21, i64 2
br i1 %35, label %36, label %41
36: ; preds = %34
%37 = or i64 %16, 2
%38 = extractelement <8 x i8> %19, i64 2
%39 = add nuw nsw i8 %38, 32
%40 = getelementptr inbounds i8, i8* %5, i64 %37
store i8 %39, i8* %40
br label %41
41: ; preds = %36, %34
%42 = extractelement <8 x i1> %21, i64 3
br i1 %42, label %43, label %48
43: ; preds = %41
%44 = or i64 %16, 3
%45 = extractelement <8 x i8> %19, i64 3
%46 = add nuw nsw i8 %45, 32
%47 = getelementptr inbounds i8, i8* %5, i64 %44
store i8 %46, i8* %47
br label %48
48: ; preds = %43, %41
%49 = extractelement <8 x i1> %21, i64 4
br i1 %49, label %50, label %55
50: ; preds = %48
%51 = or i64 %16, 4
%52 = extractelement <8 x i8> %19, i64 4
%53 = add nuw nsw i8 %52, 32
%54 = getelementptr inbounds i8, i8* %5, i64 %51
store i8 %53, i8* %54
br label %55
55: ; preds = %50, %48
%56 = extractelement <8 x i1> %21, i64 5
br i1 %56, label %57, label %62
57: ; preds = %55
%58 = or i64 %16, 5
%59 = extractelement <8 x i8> %19, i64 5
%60 = add nuw nsw i8 %59, 32
%61 = getelementptr inbounds i8, i8* %5, i64 %58
store i8 %60, i8* %61
br label %62
62: ; preds = %57, %55
%63 = extractelement <8 x i1> %21, i64 6
br i1 %63, label %64, label %69
64: ; preds = %62
%65 = or i64 %16, 6
%66 = extractelement <8 x i8> %19, i64 6
%67 = add nuw nsw i8 %66, 32
%68 = getelementptr inbounds i8, i8* %5, i64 %65
store i8 %67, i8* %68
br label %69
69: ; preds = %64, %62
%70 = extractelement <8 x i1> %21, i64 7
br i1 %70, label %71, label %76
71: ; preds = %69
%72 = or i64 %16, 7
%73 = extractelement <8 x i8> %19, i64 7
%74 = add nuw nsw i8 %73, 32
%75 = getelementptr inbounds i8, i8* %5, i64 %72
store i8 %74, i8* %75
br label %76
76: ; preds = %71, %69
%77 = add nuw i64 %16, 8
%78 = icmp eq i64 %77, %14
br i1 %78, label %79, label %15
79: ; preds = %76
%80 = icmp eq i64 %14, %11
br i1 %80, label %83, label %81
81: ; preds = %10, %79
%82 = phi i64 [ 0, %10 ], [ %14, %79 ]
br label %102
83: ; preds = %110, %79, %6
%84 = icmp sgt i32 %2, 0
br i1 %84, label %85, label %297
85: ; preds = %83
%86 = icmp sgt i32 %3, 0
%87 = icmp slt i32 %7, 2
%88 = icmp sgt i32 %7, 1
%89 = sext i32 %3 to i64
%90 = sext i32 %8 to i64
%91 = zext i32 %2 to i64
%92 = zext i32 %2 to i64
%93 = zext i32 %3 to i64
%94 = zext i32 %7 to i64
%95 = zext i32 %7 to i64
%96 = zext i32 %7 to i64
%97 = zext i32 %7 to i64
%98 = zext i32 %7 to i64
%99 = zext i32 %7 to i64
%100 = zext i32 %7 to i64
%101 = zext i32 %7 to i64
br label %113
102: ; preds = %81, %110
%103 = phi i64 [ %111, %110 ], [ %82, %81 ]
%104 = getelementptr inbounds i8, i8* %5, i64 %103
%105 = load i8, i8* %104
%106 = add i8 %105, -65
%107 = icmp ult i8 %106, 26
br i1 %107, label %108, label %110
108: ; preds = %102
%109 = add nuw nsw i8 %105, 32
store i8 %109, i8* %104
br label %110
110: ; preds = %102, %108
%111 = add nuw nsw i64 %103, 1
%112 = icmp eq i64 %111, %11
br i1 %112, label %83, label %102
113: ; preds = %85, %294
%114 = phi i64 [ 0, %85 ], [ %295, %294 ]
br i1 %86, label %115, label %294
115: ; preds = %113
%116 = load i8, i8* %5
%117 = icmp slt i64 %114, %90
%118 = sub nsw i64 %91, %114
%119 = icmp slt i64 %118, %90
%120 = or i1 %117, %87
%121 = zext i1 %117 to i32
br label %122
122: ; preds = %115, %291
%123 = phi i64 [ 0, %115 ], [ %292, %291 ]
%124 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %114, i64 %123
%125 = load i8, i8* %124
%126 = icmp eq i8 %116, %125
br i1 %126, label %127, label %291
127: ; preds = %122
br i1 %120, label %139, label %130
128: ; preds = %130
%129 = icmp eq i64 %138, %94
br i1 %129, label %139, label %130
130: ; preds = %127, %128
%131 = phi i64 [ %138, %128 ], [ 1, %127 ]
%132 = sub nsw i64 %114, %131
%133 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %132, i64 %123
%134 = load i8, i8* %133
%135 = getelementptr inbounds i8, i8* %5, i64 %131
%136 = load i8, i8* %135
%137 = icmp eq i8 %134, %136
%138 = add nuw nsw i64 %131, 1
br i1 %137, label %128, label %139
139: ; preds = %128, %130, %127
%140 = phi i32 [ %121, %127 ], [ 0, %128 ], [ 1, %130 ]
br i1 %119, label %155, label %141
141: ; preds = %139
br i1 %88, label %144, label %161
142: ; preds = %144
%143 = icmp eq i64 %152, %95
br i1 %143, label %157, label %144
144: ; preds = %141, %142
%145 = phi i64 [ %152, %142 ], [ 1, %141 ]
%146 = add nuw nsw i64 %145, %114
%147 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %146, i64 %123
%148 = load i8, i8* %147
%149 = getelementptr inbounds i8, i8* %5, i64 %145
%150 = load i8, i8* %149
%151 = icmp eq i8 %148, %150
%152 = add nuw nsw i64 %145, 1
br i1 %151, label %142, label %153
153: ; preds = %144
%154 = add nuw nsw i32 %140, 1
br label %157
155: ; preds = %139
%156 = add nuw nsw i32 %140, 1
br label %157
157: ; preds = %142, %153, %155
%158 = phi i32 [ %154, %153 ], [ %156, %155 ], [ %140, %142 ]
%159 = sub nsw i64 %89, %123
%160 = icmp slt i64 %159, %90
br i1 %160, label %178, label %164
161: ; preds = %141
%162 = sub nsw i64 %89, %123
%163 = icmp slt i64 %162, %90
br i1 %163, label %178, label %181
164: ; preds = %157
br i1 %88, label %167, label %181
165: ; preds = %167
%166 = icmp eq i64 %175, %96
br i1 %166, label %181, label %167
167: ; preds = %164, %165
%168 = phi i64 [ %175, %165 ], [ 1, %164 ]
%169 = add nuw nsw i64 %168, %123
%170 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %114, i64 %169
%171 = load i8, i8* %170
%172 = getelementptr inbounds i8, i8* %5, i64 %168
%173 = load i8, i8* %172
%174 = icmp eq i8 %171, %173
%175 = add nuw nsw i64 %168, 1
br i1 %174, label %165, label %176
176: ; preds = %167
%177 = add nsw i32 %158, 1
br label %181
178: ; preds = %161, %157
%179 = phi i32 [ %140, %161 ], [ %158, %157 ]
%180 = add nsw i32 %179, 1
br label %181
181: ; preds = %165, %161, %164, %176, %178
%182 = phi i1 [ false, %176 ], [ true, %178 ], [ false, %164 ], [ false, %161 ], [ false, %165 ]
%183 = phi i32 [ %177, %176 ], [ %180, %178 ], [ %158, %164 ], [ %140, %161 ], [ %158, %165 ]
%184 = icmp slt i64 %123, %90
br i1 %184, label %199, label %185
185: ; preds = %181
br i1 %88, label %188, label %203
186: ; preds = %188
%187 = icmp eq i64 %196, %97
br i1 %187, label %201, label %188
188: ; preds = %185, %186
%189 = phi i64 [ %196, %186 ], [ 1, %185 ]
%190 = sub nsw i64 %123, %189
%191 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %114, i64 %190
%192 = load i8, i8* %191
%193 = getelementptr inbounds i8, i8* %5, i64 %189
%194 = load i8, i8* %193
%195 = icmp eq i8 %192, %194
%196 = add nuw nsw i64 %189, 1
br i1 %195, label %186, label %197
197: ; preds = %188
%198 = add nsw i32 %183, 1
br label %201
199: ; preds = %181
%200 = add nsw i32 %183, 1
br label %219
201: ; preds = %186, %197
%202 = phi i32 [ %198, %197 ], [ %183, %186 ]
br i1 %117, label %219, label %204
203: ; preds = %185
br i1 %117, label %219, label %222
204: ; preds = %201
br i1 %88, label %207, label %222
205: ; preds = %207
%206 = icmp eq i64 %216, %98
br i1 %206, label %222, label %207
207: ; preds = %204, %205
%208 = phi i64 [ %216, %205 ], [ 1, %204 ]
%209 = sub nsw i64 %114, %208
%210 = sub nsw i64 %123, %208
%211 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %209, i64 %210
%212 = load i8, i8* %211
%213 = getelementptr inbounds i8, i8* %5, i64 %208
%214 = load i8, i8* %213
%215 = icmp eq i8 %212, %214
%216 = add nuw nsw i64 %208, 1
br i1 %215, label %205, label %217
217: ; preds = %207
%218 = add nsw i32 %202, 1
br label %222
219: ; preds = %203, %199, %201
%220 = phi i32 [ %200, %199 ], [ %202, %201 ], [ %183, %203 ]
%221 = add nsw i32 %220, 1
br label %222
222: ; preds = %205, %203, %204, %217, %219
%223 = phi i32 [ %218, %217 ], [ %221, %219 ], [ %202, %204 ], [ %183, %203 ], [ %202, %205 ]
%224 = or i1 %117, %182
br i1 %224, label %240, label %225
225: ; preds = %222
br i1 %88, label %228, label %245
226: ; preds = %228
%227 = icmp eq i64 %237, %99
br i1 %227, label %242, label %228
228: ; preds = %225, %226
%229 = phi i64 [ %237, %226 ], [ 1, %225 ]
%230 = sub nsw i64 %114, %229
%231 = add nuw nsw i64 %229, %123
%232 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %230, i64 %231
%233 = load i8, i8* %232
%234 = getelementptr inbounds i8, i8* %5, i64 %229
%235 = load i8, i8* %234
%236 = icmp eq i8 %233, %235
%237 = add nuw nsw i64 %229, 1
br i1 %236, label %226, label %238
238: ; preds = %228
%239 = add nsw i32 %223, 1
br label %242
240: ; preds = %222
%241 = add nsw i32 %223, 1
br label %242
242: ; preds = %226, %238, %240
%243 = phi i32 [ %239, %238 ], [ %241, %240 ], [ %223, %226 ]
%244 = or i1 %119, %182
br i1 %244, label %262, label %247
245: ; preds = %225
%246 = or i1 %119, %182
br i1 %246, label %262, label %265
247: ; preds = %242
br i1 %88, label %250, label %265
248: ; preds = %250
%249 = icmp eq i64 %259, %100
br i1 %249, label %265, label %250
250: ; preds = %247, %248
%251 = phi i64 [ %259, %248 ], [ 1, %247 ]
%252 = add nuw nsw i64 %251, %114
%253 = add nuw nsw i64 %251, %123
%254 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %252, i64 %253
%255 = load i8, i8* %254
%256 = getelementptr inbounds i8, i8* %5, i64 %251
%257 = load i8, i8* %256
%258 = icmp eq i8 %255, %257
%259 = add nuw nsw i64 %251, 1
br i1 %258, label %248, label %260
260: ; preds = %250
%261 = add nsw i32 %243, 1
br label %265
262: ; preds = %245, %242
%263 = phi i32 [ %223, %245 ], [ %243, %242 ]
%264 = add nsw i32 %263, 1
br label %265
265: ; preds = %248, %245, %247, %260, %262
%266 = phi i32 [ %261, %260 ], [ %264, %262 ], [ %243, %247 ], [ %223, %245 ], [ %243, %248 ]
%267 = select i1 %119, i1 true, i1 %184
br i1 %267, label %283, label %268
268: ; preds = %265
br i1 %88, label %271, label %285
269: ; preds = %271
%270 = icmp eq i64 %280, %101
br i1 %270, label %285, label %271
271: ; preds = %268, %269
%272 = phi i64 [ %280, %269 ], [ 1, %268 ]
%273 = add nuw nsw i64 %272, %114
%274 = sub nsw i64 %123, %272
%275 = getelementptr inbounds [60 x i8], [60 x i8]* %4, i64 %273, i64 %274
%276 = load i8, i8* %275
%277 = getelementptr inbounds i8, i8* %5, i64 %272
%278 = load i8, i8* %277
%279 = icmp eq i8 %276, %278
%280 = add nuw nsw i64 %272, 1
br i1 %279, label %269, label %281
281: ; preds = %271
%282 = add nsw i32 %266, 1
br label %285
283: ; preds = %265
%284 = add nsw i32 %266, 1
br label %285
285: ; preds = %269, %268, %281, %283
%286 = phi i32 [ %282, %281 ], [ %284, %283 ], [ %266, %268 ], [ %266, %269 ]
%287 = icmp slt i32 %286, 8
br i1 %287, label %288, label %291
288: ; preds = %285
%289 = trunc i64 %114 to i32
%290 = trunc i64 %123 to i32
store i32 %289, i32* %0
store i32 %290, i32* %1
br label %297
291: ; preds = %122, %285
%292 = add nuw nsw i64 %123, 1
%293 = icmp eq i64 %292, %93
br i1 %293, label %294, label %122
294: ; preds = %291, %113
%295 = add nuw nsw i64 %114, 1
%296 = icmp eq i64 %295, %92
br i1 %296, label %297, label %113
297: ; preds = %294, %83, %288
ret void
}