Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
// AOJ 2083 Black Force
// 2018.3.26 bal4u

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int  H, W, C;
int  map[22][22];
char ban[22][22];
char mk[22][22];
int  mv[4][2] = {{-1,0},{0,1},{1,0},{0,-1}};
int  h[404], sz;
int  ok, vol;

//#define getchar_unlocked()  getchar()
int in()
{
	int n = 0, c = getchar_unlocked();
	do n = 10*n + (c & 0xf), c = getchar_unlocked(); while (c >= '0');
	return n;
}

void dfs(int r, int c, int h)
{
	int i, nr, nc;

	if (mk[r][c] || h <= map[r][c]) return;
	mk[r][c] = 1;
	vol += h - map[r][c];
	if (ban[r][c] || r == 0 || r == H-1 || c == 0 || c == W-1) ok = 0;
	for (i = 0; i < 4; i++) {
		nr = r + mv[i][0], nc = c + mv[i][1];
		if (nr < 0 || nr >= H || nc < 0 || nc >= W) continue;
		dfs(nr, nc, h);
	}
}

int check(int h)
{
	int r, c;

	memset(mk, 0, sizeof(mk));
	for (r = 1; r < H-1; r++) for (c = 1; c < W-1; c++) {
		if (!mk[r][c] && map[r][c] < h) {
			ok = 1, vol = 0;
			dfs(r, c, h);
			if (ok && vol >= C) return 1;
		}
	}
	return 0;
}

int cmp(int *a, int *b) { return *a - *b; }

int uniq(int *a, int n)
{
	int i, j;
	
	for (i = 0, j = 1; j < n; j++) {
		while (j < n && a[j] == a[i]) j++;
		if (j < n) if (++i != j) a[i] = a[j];
	}
	return i+1;
}

int main()
{
	int R, i, r, c;

	while (H = in()) {
		memset(ban, 0, sizeof(ban));
		W = in(), C = in(), R = in();

		sz = 0;
		for (r = 0; r < H; r++) for (c = 0; c < W; c++) {
			h[sz++] = map[r][c] = in();
		}
		qsort(h, sz, sizeof(int), cmp);
		sz = uniq(h, sz);

		while (R--) ban[in()-1][in()-1] = 1;

		for (i = 0; i < sz; i++) if (check(h[i])) goto yes;

		for (r = 0; r < H; r++) for (c = 0; c < W; c++) {
			if (ban[r][c]) continue;
			map[r][c]++;
			if (check(map[r][c])) goto yes;
			map[r][c]--;
		}
		puts("No");
		continue;
yes:	puts("Yes");
	}
	return 0;
}

```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	H
	.bss
	.align 4
	.type	H, @object
	.size	H, 4
H:
	.zero	4
	.globl	W
	.align 4
	.type	W, @object
	.size	W, 4
W:
	.zero	4
	.globl	C
	.align 4
	.type	C, @object
	.size	C, 4
C:
	.zero	4
	.globl	map
	.align 32
	.type	map, @object
	.size	map, 1936
map:
	.zero	1936
	.globl	ban
	.align 32
	.type	ban, @object
	.size	ban, 484
ban:
	.zero	484
	.globl	mk
	.align 32
	.type	mk, @object
	.size	mk, 484
mk:
	.zero	484
	.globl	mv
	.data
	.align 32
	.type	mv, @object
	.size	mv, 32
mv:
	.long	-1
	.long	0
	.long	0
	.long	1
	.long	1
	.long	0
	.long	0
	.long	-1
	.globl	h
	.bss
	.align 32
	.type	h, @object
	.size	h, 1616
h:
	.zero	1616
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	ok
	.align 4
	.type	ok, @object
	.size	ok, 4
ok:
	.zero	4
	.globl	vol
	.align 4
	.type	vol, @object
	.size	vol, 4
vol:
	.zero	4
	.text
	.globl	in
	.type	in, @function
in:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movl	$0, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
.L2:
	movl	-8(%rbp), %edx
	movl	%edx, %eax
	sall	$2, %eax
	addl	%edx, %eax
	addl	%eax, %eax
	movl	%eax, %edx
	movl	-4(%rbp), %eax
	andl	$15, %eax
	addl	%edx, %eax
	movl	%eax, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
	cmpl	$47, -4(%rbp)
	jg	.L2
	movl	-8(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	in, .-in
	.globl	dfs
	.type	dfs, @function
dfs:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -20(%rbp)
	movl	%esi, -24(%rbp)
	movl	%edx, -28(%rbp)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L15
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -28(%rbp)
	jle	.L15
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movb	$1, (%rax)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-28(%rbp), %eax
	subl	%edx, %eax
	movl	%eax, %ecx
	movl	vol(%rip), %eax
	addl	%ecx, %eax
	movl	%eax, vol(%rip)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L8
	cmpl	$0, -20(%rbp)
	je	.L8
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -20(%rbp)
	je	.L8
	cmpl	$0, -24(%rbp)
	je	.L8
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -24(%rbp)
	jne	.L9
.L8:
	movl	$0, ok(%rip)
.L9:
	movl	$0, -12(%rbp)
	jmp	.L10
.L14:
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	mv(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-20(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -8(%rbp)
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+mv(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-24(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -4(%rbp)
	cmpl	$0, -8(%rbp)
	js	.L16
	movl	H(%rip), %eax
	cmpl	%eax, -8(%rbp)
	jge	.L16
	cmpl	$0, -4(%rbp)
	js	.L16
	movl	W(%rip), %eax
	cmpl	%eax, -4(%rbp)
	jge	.L16
	movl	-28(%rbp), %edx
	movl	-4(%rbp), %ecx
	movl	-8(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	call	dfs
	jmp	.L13
.L16:
	nop
.L13:
	addl	$1, -12(%rbp)
.L10:
	cmpl	$3, -12(%rbp)
	jle	.L14
	jmp	.L4
.L15:
	nop
.L4:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	dfs, .-dfs
	.globl	check
	.type	check, @function
check:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -20(%rbp)
	movl	$484, %edx
	movl	$0, %esi
	leaq	mk(%rip), %rax
	movq	%rax, %rdi
	call	memset@PLT
	movl	$1, -8(%rbp)
	jmp	.L18
.L23:
	movl	$1, -4(%rbp)
	jmp	.L19
.L22:
	movl	-4(%rbp), %eax
	movslq	%eax, %rcx
	movl	-8(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L20
	movl	-4(%rbp), %eax
	movslq	%eax, %rcx
	movl	-8(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jle	.L20
	movl	$1, ok(%rip)
	movl	$0, vol(%rip)
	movl	-20(%rbp), %edx
	movl	-4(%rbp), %ecx
	movl	-8(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	call	dfs
	movl	ok(%rip), %eax
	testl	%eax, %eax
	je	.L20
	movl	vol(%rip), %edx
	movl	C(%rip), %eax
	cmpl	%eax, %edx
	jl	.L20
	movl	$1, %eax
	jmp	.L21
.L20:
	addl	$1, -4(%rbp)
.L19:
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -4(%rbp)
	jl	.L22
	addl	$1, -8(%rbp)
.L18:
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -8(%rbp)
	jl	.L23
	movl	$0, %eax
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	check, .-check
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	cmp, .-cmp
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -8(%rbp)
	movl	$1, -4(%rbp)
	jmp	.L27
.L30:
	addl	$1, -4(%rbp)
.L28:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L29
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	movq	-24(%rbp), %rax
	addq	%rcx, %rax
	movl	(%rax), %eax
	cmpl	%eax, %edx
	je	.L30
.L29:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L31
	addl	$1, -8(%rbp)
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	je	.L31
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-8(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
.L31:
	addl	$1, -4(%rbp)
.L27:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L28
	movl	-8(%rbp), %eax
	addl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	uniq, .-uniq
	.section	.rodata
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
	jmp	.L35
.L53:
	movl	$484, %edx
	movl	$0, %esi
	leaq	ban(%rip), %rax
	movq	%rax, %rdi
	call	memset@PLT
	movl	$0, %eax
	call	in
	movl	%eax, W(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, C(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, -32(%rbp)
	movl	$0, sz(%rip)
	movl	$0, -24(%rbp)
	jmp	.L36
.L39:
	movl	$0, -20(%rbp)
	jmp	.L37
.L38:
	movl	$0, %eax
	call	in
	movl	%eax, %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	sz(%rip), %ecx
	leal	1(%rcx), %eax
	movl	%eax, sz(%rip)
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	movslq	%ecx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	h(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -20(%rbp)
.L37:
	movl	W(%rip), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L38
	addl	$1, -24(%rbp)
.L36:
	movl	H(%rip), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L39
	movl	sz(%rip), %eax
	cltq
	leaq	cmp(%rip), %rdx
	movq	%rdx, %rcx
	movl	$4, %edx
	movq	%rax, %rsi
	leaq	h(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	movl	sz(%rip), %eax
	movl	%eax, %esi
	leaq	h(%rip), %rax
	movq	%rax, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	jmp	.L40
.L41:
	movl	$0, %eax
	call	in
	leal	-1(%rax), %ebx
	movl	$0, %eax
	call	in
	subl	$1, %eax
	movslq	%eax, %rcx
	movslq	%ebx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movb	$1, (%rax)
.L40:
	movl	-32(%rbp), %eax
	leal	-1(%rax), %edx
	movl	%edx, -32(%rbp)
	testl	%eax, %eax
	jne	.L41
	movl	$0, -28(%rbp)
	jmp	.L42
.L45:
	movl	-28(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	h(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	check
	testl	%eax, %eax
	jne	.L55
	addl	$1, -28(%rbp)
.L42:
	movl	sz(%rip), %eax
	cmpl	%eax, -28(%rbp)
	jl	.L45
	movl	$0, -24(%rbp)
	jmp	.L46
.L52:
	movl	$0, -20(%rbp)
	jmp	.L47
.L51:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L56
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	check
	testl	%eax, %eax
	jne	.L57
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	-1(%rax), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L49
.L56:
	nop
.L49:
	addl	$1, -20(%rbp)
.L47:
	movl	W(%rip), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L51
	addl	$1, -24(%rbp)
.L46:
	movl	H(%rip), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L52
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L35
.L55:
	nop
	jmp	.L44
.L57:
	nop
.L44:
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L35:
	movl	$0, %eax
	call	in
	movl	%eax, H(%rip)
	movl	H(%rip), %eax
	testl	%eax, %eax
	jne	.L53
	movl	$0, %eax
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
user
	.file	"temp.c"
	.text
	.p2align 4
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB54:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE54:
	.size	cmp, .-cmp
	.p2align 4
	.globl	in
	.type	in, @function
in:
.LFB51:
	.cfi_startproc
	endbr64
	movq	stdin(%rip), %rdi
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L12
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L5:
	xorl	%r12d, %r12d
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L6:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L3
.L7:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L9:
	leal	(%r12,%r12,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r12d
	cmpq	%rcx, %rdx
	jb	.L6
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L3
	movq	stdin(%rip), %rdi
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L3:
	movl	%r12d, %eax
	popq	%r12
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	.cfi_restore_state
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L5
	.cfi_endproc
.LFE51:
	.size	in, .-in
	.p2align 4
	.globl	dfs
	.type	dfs, @function
dfs:
.LFB52:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	ban(%rip), %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	leaq	map(%rip), %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	mk(%rip), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%edx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%edi, %ebx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
.L20:
	movslq	%ebx, %rax
	movslq	%ebp, %rcx
	leaq	(%rax,%rax,4), %rdx
	leaq	(%rax,%rdx,2), %rax
	addq	%rax, %rax
	leaq	0(%r13,%rax), %rdx
	addq	%rcx, %rdx
	cmpb	$0, (%rdx)
	jne	.L13
	leaq	(%rax,%rcx), %rsi
	movl	(%r14,%rsi,4), %esi
	cmpl	%r12d, %esi
	jge	.L13
	movb	$1, (%rdx)
	addq	%r15, %rax
	movl	%r12d, %edx
	subl	%esi, %edx
	addl	%edx, vol(%rip)
	cmpb	$0, (%rax,%rcx)
	jne	.L15
	testl	%ebx, %ebx
	jne	.L23
.L15:
	movl	$0, ok(%rip)
.L16:
	movl	%ebx, %edi
	addl	mv(%rip), %edi
	js	.L17
	movl	4+mv(%rip), %esi
	addl	%ebp, %esi
	cmpl	%edi, H(%rip)
	jle	.L17
	testl	%esi, %esi
	js	.L17
	cmpl	W(%rip), %esi
	jge	.L17
	movl	%r12d, %edx
	call	dfs
	.p2align 4,,10
	.p2align 3
.L17:
	movl	%ebx, %edi
	addl	8+mv(%rip), %edi
	js	.L18
	movl	12+mv(%rip), %esi
	addl	%ebp, %esi
	cmpl	H(%rip), %edi
	jge	.L18
	testl	%esi, %esi
	js	.L18
	cmpl	W(%rip), %esi
	jge	.L18
	movl	%r12d, %edx
	call	dfs
	.p2align 4,,10
	.p2align 3
.L18:
	movl	%ebx, %edi
	addl	16+mv(%rip), %edi
	js	.L19
	movl	20+mv(%rip), %esi
	addl	%ebp, %esi
	cmpl	H(%rip), %edi
	jge	.L19
	testl	%esi, %esi
	js	.L19
	cmpl	W(%rip), %esi
	jge	.L19
	movl	%r12d, %edx
	call	dfs
	.p2align 4,,10
	.p2align 3
.L19:
	addl	24+mv(%rip), %ebx
	js	.L13
	addl	28+mv(%rip), %ebp
	cmpl	H(%rip), %ebx
	jge	.L13
	testl	%ebp, %ebp
	js	.L13
	cmpl	W(%rip), %ebp
	jl	.L20
.L13:
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L23:
	.cfi_restore_state
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%ebx, %eax
	je	.L15
	testl	%ebp, %ebp
	je	.L15
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%ebp, %eax
	jne	.L16
	jmp	.L15
	.cfi_endproc
.LFE52:
	.size	dfs, .-dfs
	.p2align 4
	.globl	check
	.type	check, @function
check:
.LFB53:
	.cfi_startproc
	endbr64
	leaq	mk(%rip), %rdx
	xorl	%eax, %eax
	movl	%edi, %r10d
	movl	$60, %ecx
	movq	%rdx, %rdi
	cmpl	$2, H(%rip)
	rep stosq
	movl	$0, (%rdi)
	jle	.L37
	movl	W(%rip), %edx
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	22+mk(%rip), %r9
	leaq	88+map(%rip), %r11
	movl	$1, %ebx
	cmpl	$2, %edx
	jle	.L25
	.p2align 4,,10
	.p2align 3
.L34:
	movl	$1, %r8d
	jmp	.L31
	.p2align 4,,10
	.p2align 3
.L27:
	addq	$1, %r8
	leal	-1(%rdx), %eax
	cmpl	%r8d, %eax
	jle	.L40
.L31:
	cmpb	$0, (%r9,%r8)
	movl	%r8d, %esi
	jne	.L27
	cmpl	%r10d, (%r11,%r8,4)
	jge	.L27
	movl	$1, ok(%rip)
	movl	%r10d, %edx
	movl	%ebx, %edi
	movl	$0, vol(%rip)
	call	dfs
	movl	ok(%rip), %eax
	testl	%eax, %eax
	je	.L30
	movl	C(%rip), %eax
	cmpl	%eax, vol(%rip)
	jge	.L41
.L30:
	movl	W(%rip), %edx
	addq	$1, %r8
	leal	-1(%rdx), %eax
	cmpl	%r8d, %eax
	jg	.L31
	.p2align 4,,10
	.p2align 3
.L40:
	movl	H(%rip), %eax
	addl	$1, %ebx
	subl	$1, %eax
	cmpl	%eax, %ebx
	jge	.L25
	addq	$22, %r9
	addq	$88, %r11
	cmpl	$2, %edx
	jg	.L34
.L25:
	xorl	%eax, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L41:
	.cfi_restore_state
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L37:
	.cfi_restore 3
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE53:
	.size	check, .-check
	.p2align 4
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB55:
	.cfi_startproc
	endbr64
	movl	$1, %eax
	xorl	%r10d, %r10d
	cmpl	$1, %esi
	jle	.L54
	.p2align 4,,10
	.p2align 3
.L43:
	movslq	%r10d, %rdx
	movl	(%rdi,%rdx,4), %r8d
	leaq	0(,%rdx,4), %r11
	movslq	%eax, %rdx
	leaq	(%rdi,%rdx,4), %rdx
	.p2align 4,,10
	.p2align 3
.L48:
	movl	(%rdx), %ecx
	movl	%eax, %r9d
	addl	$1, %eax
	cmpl	%r8d, %ecx
	jne	.L55
	addq	$4, %rdx
	cmpl	%eax, %esi
	jg	.L48
.L45:
	addl	$1, %eax
	cmpl	%eax, %esi
	jg	.L43
.L56:
	leal	1(%r10), %eax
	ret
	.p2align 4,,10
	.p2align 3
.L55:
	addl	$1, %r10d
	movl	%r10d, %eax
	cmpl	%r9d, %r10d
	je	.L45
	movl	%r9d, %eax
	movl	%ecx, 4(%rdi,%r11)
	addl	$1, %eax
	cmpl	%eax, %esi
	jg	.L43
	jmp	.L56
.L54:
	ret
	.cfi_endproc
.LFE55:
	.size	uniq, .-uniq
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB56:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	h(%rip), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
.L58:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L151
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L120:
	xorl	%ebp, %ebp
	jmp	.L124
	.p2align 4,,10
	.p2align 3
.L121:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L123
.L122:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L124:
	leal	0(%rbp,%rbp,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %ebp
	cmpq	%rcx, %rdx
	jb	.L121
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L123
	movq	stdin(%rip), %rdi
	jmp	.L122
.L123:
	movl	%ebp, H(%rip)
	testl	%ebp, %ebp
	je	.L152
	xorl	%eax, %eax
	movl	$60, %ecx
	leaq	ban(%rip), %rdi
	rep stosq
	movl	$0, (%rdi)
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rdx
	cmpq	%rdx, %rax
	jnb	.L153
	leaq	1(%rax), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rax), %eax
.L60:
	xorl	%ebp, %ebp
	jmp	.L64
	.p2align 4,,10
	.p2align 3
.L61:
	leaq	1(%rcx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rcx), %eax
	cmpl	$47, %eax
	jle	.L63
.L62:
	movq	%rsi, %rcx
.L64:
	leal	0(%rbp,%rbp,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %ebp
	cmpq	%rdx, %rcx
	jb	.L61
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rdx
	cmpl	$47, %eax
	jg	.L62
.L63:
	movl	%ebp, W(%rip)
	cmpq	%rdx, %rsi
	jnb	.L154
	leaq	1(%rsi), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rsi), %eax
.L66:
	xorl	%ebp, %ebp
	jmp	.L70
	.p2align 4,,10
	.p2align 3
.L67:
	leaq	1(%rcx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rcx), %eax
	cmpl	$47, %eax
	jle	.L69
.L68:
	movq	%rsi, %rcx
.L70:
	leal	0(%rbp,%rbp,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %ebp
	cmpq	%rdx, %rcx
	jb	.L67
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rdx
	cmpl	$47, %eax
	jg	.L68
.L69:
	movl	%ebp, C(%rip)
	cmpq	%rsi, %rdx
	jbe	.L155
	leaq	1(%rsi), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rsi), %eax
.L72:
	xorl	%r12d, %r12d
	jmp	.L76
	.p2align 4,,10
	.p2align 3
.L73:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rcx), %eax
	cmpl	$47, %eax
	jle	.L75
.L74:
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
.L76:
	leal	(%r12,%r12,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r12d
	cmpq	%rdx, %rcx
	jb	.L73
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L75
	movq	stdin(%rip), %rdi
	jmp	.L74
.L75:
	movl	$0, sz(%rip)
	movl	H(%rip), %ecx
	testl	%ecx, %ecx
	jle	.L127
	movl	W(%rip), %eax
	leaq	map(%rip), %rbp
	xorl	%r13d, %r13d
	testl	%eax, %eax
	jle	.L87
	.p2align 4,,10
	.p2align 3
.L128:
	xorl	%r15d, %r15d
	.p2align 4,,10
	.p2align 3
.L85:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %r8
	cmpq	%r8, %rax
	jnb	.L156
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L80:
	xorl	%r14d, %r14d
	jmp	.L84
	.p2align 4,,10
	.p2align 3
.L81:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L83
.L82:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %r8
.L84:
	leal	(%r14,%r14,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r14d
	cmpq	%r8, %rdx
	jb	.L81
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L83
	movq	stdin(%rip), %rdi
	jmp	.L82
	.p2align 4,,10
	.p2align 3
.L83:
	movslq	sz(%rip), %rax
	movl	%r14d, 0(%rbp,%r15,4)
	addq	$1, %r15
	leal	1(%rax), %edx
	movl	%r14d, (%rbx,%rax,4)
	movl	W(%rip), %eax
	movl	%edx, sz(%rip)
	cmpl	%r15d, %eax
	jg	.L85
	addl	$1, %r13d
	cmpl	H(%rip), %r13d
	jge	.L87
	addq	$88, %rbp
	testl	%eax, %eax
	jg	.L128
.L87:
	movslq	sz(%rip), %rsi
.L77:
	movq	%rbx, %rdi
	leaq	cmp(%rip), %rcx
	movl	$4, %edx
	call	qsort@PLT
	movl	sz(%rip), %edi
	movl	$1, %eax
	xorl	%r11d, %r11d
	movl	$1, %r9d
	cmpl	$1, %edi
	jle	.L157
	.p2align 4,,10
	.p2align 3
.L88:
	movslq	%r11d, %r10
	movslq	%eax, %rdx
	movl	(%rbx,%r10,4), %r8d
	leaq	(%rbx,%rdx,4), %rdx
	.p2align 4,,10
	.p2align 3
.L94:
	movl	(%rdx), %ecx
	movl	%eax, %esi
	addl	$1, %eax
	cmpl	%r8d, %ecx
	jne	.L158
	addq	$4, %rdx
	cmpl	%eax, %edi
	jg	.L94
.L90:
	addl	$1, %eax
	cmpl	%eax, %edi
	jg	.L88
.L162:
	movl	%r9d, sz(%rip)
	leal	-1(%r12), %ebp
	testl	%r12d, %r12d
	je	.L93
	.p2align 4,,10
	.p2align 3
.L108:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L159
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L97:
	xorl	%r12d, %r12d
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L98:
	leaq	1(%rdx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L100
.L99:
	movq	%rsi, %rdx
.L101:
	leal	(%r12,%r12,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r12d
	cmpq	%rcx, %rdx
	jb	.L98
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	cmpl	$47, %eax
	jg	.L99
	.p2align 4,,10
	.p2align 3
.L100:
	subl	$1, %r12d
	cmpq	%rcx, %rsi
	jnb	.L160
	leaq	1(%rsi), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rsi), %eax
.L103:
	xorl	%r13d, %r13d
	jmp	.L107
	.p2align 4,,10
	.p2align 3
.L104:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L106
.L105:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L107:
	leal	0(%r13,%r13,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r13d
	cmpq	%rcx, %rdx
	jb	.L104
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L106
	movq	stdin(%rip), %rdi
	jmp	.L105
	.p2align 4,,10
	.p2align 3
.L156:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %r8
	jmp	.L80
	.p2align 4,,10
	.p2align 3
.L106:
	movslq	%r12d, %r12
	leal	-1(%r13), %eax
	leaq	ban(%rip), %rcx
	leaq	(%r12,%r12,4), %rdx
	cltq
	leaq	(%r12,%rdx,2), %rdx
	leaq	(%rcx,%rdx,2), %rdx
	movb	$1, (%rdx,%rax)
	subl	$1, %ebp
	jnb	.L108
	movl	sz(%rip), %r9d
.L93:
	testl	%r9d, %r9d
	jle	.L113
.L95:
	xorl	%ebp, %ebp
	jmp	.L112
	.p2align 4,,10
	.p2align 3
.L161:
	addq	$1, %rbp
	cmpl	%ebp, sz(%rip)
	jle	.L113
.L112:
	movl	(%rbx,%rbp,4), %edi
	call	check
	testl	%eax, %eax
	je	.L161
.L111:
	leaq	.LC1(%rip), %rdi
	call	puts@PLT
	jmp	.L58
.L113:
	movl	H(%rip), %edx
	movl	W(%rip), %eax
	xorl	%r15d, %r15d
	leaq	map(%rip), %r14
	leaq	ban(%rip), %r13
	testl	%edx, %edx
	jle	.L110
	testl	%eax, %eax
	jle	.L110
.L132:
	movq	%r14, %r12
	xorl	%ebp, %ebp
	.p2align 4,,10
	.p2align 3
.L116:
	cmpb	$0, 0(%r13,%rbp)
	jne	.L115
	movl	(%r12), %eax
	leal	1(%rax), %edi
	movl	%edi, (%r12)
	call	check
	testl	%eax, %eax
	jne	.L111
	subl	$1, (%r12)
	movl	W(%rip), %eax
.L115:
	addq	$1, %rbp
	addq	$4, %r12
	cmpl	%ebp, %eax
	jg	.L116
	addl	$1, %r15d
	cmpl	%r15d, H(%rip)
	jle	.L110
	addq	$88, %r14
	addq	$22, %r13
	testl	%eax, %eax
	jg	.L132
.L110:
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
	jmp	.L58
.L158:
	cmpl	%esi, %edi
	jle	.L130
	cmpl	%r9d, %esi
	je	.L131
	leaq	4+h(%rip), %rax
	movl	%r9d, %r11d
	addl	$1, %r9d
	movl	%ecx, (%rax,%r10,4)
	movl	%esi, %eax
	addl	$1, %eax
	cmpl	%eax, %edi
	jg	.L88
	jmp	.L162
.L131:
	movl	%r9d, %eax
	movl	%r9d, %r11d
	addl	$1, %r9d
	addl	$1, %eax
	cmpl	%eax, %edi
	jg	.L88
	jmp	.L162
.L160:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L103
.L159:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L97
.L157:
	movl	$1, sz(%rip)
	leal	-1(%r12), %ebp
	testl	%r12d, %r12d
	jne	.L108
	jmp	.L95
.L155:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
	jmp	.L72
.L127:
	xorl	%esi, %esi
	jmp	.L77
.L154:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
	jmp	.L66
.L153:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
	jmp	.L60
.L152:
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L151:
	.cfi_restore_state
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L120
.L130:
	movl	%esi, %eax
	jmp	.L90
	.cfi_endproc
.LFE56:
	.size	main, .-main
	.globl	vol
	.bss
	.align 4
	.type	vol, @object
	.size	vol, 4
vol:
	.zero	4
	.globl	ok
	.align 4
	.type	ok, @object
	.size	ok, 4
ok:
	.zero	4
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	h
	.align 32
	.type	h, @object
	.size	h, 1616
h:
	.zero	1616
	.globl	mv
	.data
	.align 32
	.type	mv, @object
	.size	mv, 32
mv:
	.long	-1
	.long	0
	.long	0
	.long	1
	.long	1
	.long	0
	.long	0
	.long	-1
	.globl	mk
	.bss
	.align 32
	.type	mk, @object
	.size	mk, 484
mk:
	.zero	484
	.globl	ban
	.align 32
	.type	ban, @object
	.size	ban, 484
ban:
	.zero	484
	.globl	map
	.align 32
	.type	map, @object
	.size	map, 1936
map:
	.zero	1936
	.globl	C
	.align 4
	.type	C, @object
	.size	C, 4
C:
	.zero	4
	.globl	W
	.align 4
	.type	W, @object
	.size	W, 4
W:
	.zero	4
	.globl	H
	.align 4
	.type	H, @object
	.size	H, 4
H:
	.zero	4
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

rule
	.file	"temp.c"
	.text
	.p2align 4
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB54:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE54:
	.size	cmp, .-cmp
	.p2align 4
	.globl	in
	.type	in, @function
in:
.LFB51:
	.cfi_startproc
	endbr64
	movq	stdin(%rip), %rdi
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L12
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L5:
	xorl	%r12d, %r12d
	jmp	.L9
	.p2align 4,,10
	.p2align 3
.L6:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L3
.L7:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L9:
	leal	(%r12,%r12,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r12d
	cmpq	%rcx, %rdx
	jb	.L6
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L3
	movq	stdin(%rip), %rdi
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L3:
	movl	%r12d, %eax
	popq	%r12
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	.cfi_restore_state
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L5
	.cfi_endproc
.LFE51:
	.size	in, .-in
	.p2align 4
	.globl	dfs
	.type	dfs, @function
dfs:
.LFB52:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	ban(%rip), %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	leaq	map(%rip), %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	leaq	mk(%rip), %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movl	%edx, %r12d
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movl	%esi, %ebp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movl	%edi, %ebx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
.L20:
	movslq	%ebx, %rax
	movslq	%ebp, %rcx
	leaq	(%rax,%rax,4), %rdx
	leaq	(%rax,%rdx,2), %rax
	addq	%rax, %rax
	leaq	0(%r13,%rax), %rdx
	addq	%rcx, %rdx
	cmpb	$0, (%rdx)
	jne	.L13
	leaq	(%rax,%rcx), %rsi
	movl	(%r14,%rsi,4), %esi
	cmpl	%r12d, %esi
	jge	.L13
	movb	$1, (%rdx)
	addq	%r15, %rax
	movl	%r12d, %edx
	subl	%esi, %edx
	addl	%edx, vol(%rip)
	cmpb	$0, (%rax,%rcx)
	jne	.L15
	testl	%ebx, %ebx
	jne	.L23
.L15:
	movl	$0, ok(%rip)
.L16:
	movl	%ebx, %edi
	addl	mv(%rip), %edi
	js	.L17
	movl	4+mv(%rip), %esi
	addl	%ebp, %esi
	cmpl	%edi, H(%rip)
	jle	.L17
	testl	%esi, %esi
	js	.L17
	cmpl	W(%rip), %esi
	jge	.L17
	movl	%r12d, %edx
	call	dfs
	.p2align 4,,10
	.p2align 3
.L17:
	movl	%ebx, %edi
	addl	8+mv(%rip), %edi
	js	.L18
	movl	12+mv(%rip), %esi
	addl	%ebp, %esi
	cmpl	H(%rip), %edi
	jge	.L18
	testl	%esi, %esi
	js	.L18
	cmpl	W(%rip), %esi
	jge	.L18
	movl	%r12d, %edx
	call	dfs
	.p2align 4,,10
	.p2align 3
.L18:
	movl	%ebx, %edi
	addl	16+mv(%rip), %edi
	js	.L19
	movl	20+mv(%rip), %esi
	addl	%ebp, %esi
	cmpl	H(%rip), %edi
	jge	.L19
	testl	%esi, %esi
	js	.L19
	cmpl	W(%rip), %esi
	jge	.L19
	movl	%r12d, %edx
	call	dfs
	.p2align 4,,10
	.p2align 3
.L19:
	addl	24+mv(%rip), %ebx
	js	.L13
	addl	28+mv(%rip), %ebp
	cmpl	H(%rip), %ebx
	jge	.L13
	testl	%ebp, %ebp
	js	.L13
	cmpl	W(%rip), %ebp
	jl	.L20
.L13:
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L23:
	.cfi_restore_state
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%ebx, %eax
	je	.L15
	testl	%ebp, %ebp
	je	.L15
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%ebp, %eax
	jne	.L16
	jmp	.L15
	.cfi_endproc
.LFE52:
	.size	dfs, .-dfs
	.p2align 4
	.globl	check
	.type	check, @function
check:
.LFB53:
	.cfi_startproc
	endbr64
	leaq	mk(%rip), %rdx
	xorl	%eax, %eax
	movl	%edi, %r10d
	movl	$60, %ecx
	movq	%rdx, %rdi
	cmpl	$2, H(%rip)
	rep stosq
	movl	$0, (%rdi)
	jle	.L37
	movl	W(%rip), %edx
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	22+mk(%rip), %r9
	leaq	88+map(%rip), %r11
	movl	$1, %ebx
	cmpl	$2, %edx
	jle	.L25
	.p2align 4,,10
	.p2align 3
.L34:
	movl	$1, %r8d
	jmp	.L31
	.p2align 4,,10
	.p2align 3
.L27:
	addq	$1, %r8
	leal	-1(%rdx), %eax
	cmpl	%r8d, %eax
	jle	.L40
.L31:
	cmpb	$0, (%r9,%r8)
	movl	%r8d, %esi
	jne	.L27
	cmpl	%r10d, (%r11,%r8,4)
	jge	.L27
	movl	$1, ok(%rip)
	movl	%r10d, %edx
	movl	%ebx, %edi
	movl	$0, vol(%rip)
	call	dfs
	movl	ok(%rip), %eax
	testl	%eax, %eax
	je	.L30
	movl	C(%rip), %eax
	cmpl	%eax, vol(%rip)
	jge	.L41
.L30:
	movl	W(%rip), %edx
	addq	$1, %r8
	leal	-1(%rdx), %eax
	cmpl	%r8d, %eax
	jg	.L31
	.p2align 4,,10
	.p2align 3
.L40:
	movl	H(%rip), %eax
	addl	$1, %ebx
	subl	$1, %eax
	cmpl	%eax, %ebx
	jge	.L25
	addq	$22, %r9
	addq	$88, %r11
	cmpl	$2, %edx
	jg	.L34
.L25:
	xorl	%eax, %eax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L41:
	.cfi_restore_state
	movl	$1, %eax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
.L37:
	.cfi_restore 3
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE53:
	.size	check, .-check
	.p2align 4
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB55:
	.cfi_startproc
	endbr64
	movl	$1, %eax
	xorl	%r10d, %r10d
	cmpl	$1, %esi
	jle	.L54
	.p2align 4,,10
	.p2align 3
.L43:
	movslq	%r10d, %rdx
	movl	(%rdi,%rdx,4), %r8d
	leaq	0(,%rdx,4), %r11
	movslq	%eax, %rdx
	leaq	(%rdi,%rdx,4), %rdx
	.p2align 4,,10
	.p2align 3
.L48:
	movl	(%rdx), %ecx
	movl	%eax, %r9d
	addl	$1, %eax
	cmpl	%r8d, %ecx
	jne	.L55
	addq	$4, %rdx
	cmpl	%eax, %esi
	jg	.L48
.L45:
	addl	$1, %eax
	cmpl	%eax, %esi
	jg	.L43
.L56:
	leal	1(%r10), %eax
	ret
	.p2align 4,,10
	.p2align 3
.L55:
	addl	$1, %r10d
	movl	%r10d, %eax
	cmpl	%r9d, %r10d
	je	.L45
	movl	%r9d, %eax
	movl	%ecx, 4(%rdi,%r11)
	addl	$1, %eax
	cmpl	%eax, %esi
	jg	.L43
	jmp	.L56
.L54:
	ret
	.cfi_endproc
.LFE55:
	.size	uniq, .-uniq
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB56:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	leaq	h(%rip), %rbx
	subq	$8, %rsp
	.cfi_def_cfa_offset 64
.L58:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L151
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L120:
	xorl	%ebp, %ebp
	jmp	.L124
	.p2align 4,,10
	.p2align 3
.L121:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L123
.L122:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L124:
	leal	0(%rbp,%rbp,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %ebp
	cmpq	%rcx, %rdx
	jb	.L121
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L123
	movq	stdin(%rip), %rdi
	jmp	.L122
.L123:
	movl	%ebp, H(%rip)
	testl	%ebp, %ebp
	je	.L152
	xorl	%eax, %eax
	movl	$60, %ecx
	leaq	ban(%rip), %rdi
	rep stosq
	movl	$0, (%rdi)
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rdx
	cmpq	%rdx, %rax
	jnb	.L153
	leaq	1(%rax), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rax), %eax
.L60:
	xorl	%ebp, %ebp
	jmp	.L64
	.p2align 4,,10
	.p2align 3
.L61:
	leaq	1(%rcx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rcx), %eax
	cmpl	$47, %eax
	jle	.L63
.L62:
	movq	%rsi, %rcx
.L64:
	leal	0(%rbp,%rbp,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %ebp
	cmpq	%rdx, %rcx
	jb	.L61
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rdx
	cmpl	$47, %eax
	jg	.L62
.L63:
	movl	%ebp, W(%rip)
	cmpq	%rdx, %rsi
	jnb	.L154
	leaq	1(%rsi), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rsi), %eax
.L66:
	xorl	%ebp, %ebp
	jmp	.L70
	.p2align 4,,10
	.p2align 3
.L67:
	leaq	1(%rcx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rcx), %eax
	cmpl	$47, %eax
	jle	.L69
.L68:
	movq	%rsi, %rcx
.L70:
	leal	0(%rbp,%rbp,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %ebp
	cmpq	%rdx, %rcx
	jb	.L67
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rdx
	cmpl	$47, %eax
	jg	.L68
.L69:
	movl	%ebp, C(%rip)
	cmpq	%rsi, %rdx
	jbe	.L155
	leaq	1(%rsi), %rcx
	movq	%rcx, 8(%rdi)
	movzbl	(%rsi), %eax
.L72:
	xorl	%r12d, %r12d
	jmp	.L76
	.p2align 4,,10
	.p2align 3
.L73:
	leaq	1(%rcx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rcx), %eax
	cmpl	$47, %eax
	jle	.L75
.L74:
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
.L76:
	leal	(%r12,%r12,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r12d
	cmpq	%rdx, %rcx
	jb	.L73
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L75
	movq	stdin(%rip), %rdi
	jmp	.L74
.L75:
	movl	$0, sz(%rip)
	movl	H(%rip), %ecx
	testl	%ecx, %ecx
	jle	.L127
	movl	W(%rip), %eax
	leaq	map(%rip), %rbp
	xorl	%r13d, %r13d
	testl	%eax, %eax
	jle	.L87
	.p2align 4,,10
	.p2align 3
.L128:
	xorl	%r15d, %r15d
	.p2align 4,,10
	.p2align 3
.L85:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %r8
	cmpq	%r8, %rax
	jnb	.L156
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L80:
	xorl	%r14d, %r14d
	jmp	.L84
	.p2align 4,,10
	.p2align 3
.L81:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L83
.L82:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %r8
.L84:
	leal	(%r14,%r14,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r14d
	cmpq	%r8, %rdx
	jb	.L81
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L83
	movq	stdin(%rip), %rdi
	jmp	.L82
	.p2align 4,,10
	.p2align 3
.L83:
	movslq	sz(%rip), %rax
	movl	%r14d, 0(%rbp,%r15,4)
	addq	$1, %r15
	leal	1(%rax), %edx
	movl	%r14d, (%rbx,%rax,4)
	movl	W(%rip), %eax
	movl	%edx, sz(%rip)
	cmpl	%r15d, %eax
	jg	.L85
	addl	$1, %r13d
	cmpl	H(%rip), %r13d
	jge	.L87
	addq	$88, %rbp
	testl	%eax, %eax
	jg	.L128
.L87:
	movslq	sz(%rip), %rsi
.L77:
	movq	%rbx, %rdi
	leaq	cmp(%rip), %rcx
	movl	$4, %edx
	call	qsort@PLT
	movl	sz(%rip), %edi
	movl	$1, %eax
	xorl	%r11d, %r11d
	movl	$1, %r9d
	cmpl	$1, %edi
	jle	.L157
	.p2align 4,,10
	.p2align 3
.L88:
	movslq	%r11d, %r10
	movslq	%eax, %rdx
	movl	(%rbx,%r10,4), %r8d
	leaq	(%rbx,%rdx,4), %rdx
	.p2align 4,,10
	.p2align 3
.L94:
	movl	(%rdx), %ecx
	movl	%eax, %esi
	addl	$1, %eax
	cmpl	%r8d, %ecx
	jne	.L158
	addq	$4, %rdx
	cmpl	%eax, %edi
	jg	.L94
.L90:
	addl	$1, %eax
	cmpl	%eax, %edi
	jg	.L88
.L162:
	movl	%r9d, sz(%rip)
	leal	-1(%r12), %ebp
	testl	%r12d, %r12d
	je	.L93
	.p2align 4,,10
	.p2align 3
.L108:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L159
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L97:
	xorl	%r12d, %r12d
	jmp	.L101
	.p2align 4,,10
	.p2align 3
.L98:
	leaq	1(%rdx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L100
.L99:
	movq	%rsi, %rdx
.L101:
	leal	(%r12,%r12,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r12d
	cmpq	%rcx, %rdx
	jb	.L98
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	cmpl	$47, %eax
	jg	.L99
	.p2align 4,,10
	.p2align 3
.L100:
	subl	$1, %r12d
	cmpq	%rcx, %rsi
	jnb	.L160
	leaq	1(%rsi), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rsi), %eax
.L103:
	xorl	%r13d, %r13d
	jmp	.L107
	.p2align 4,,10
	.p2align 3
.L104:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L106
.L105:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L107:
	leal	0(%r13,%r13,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r13d
	cmpq	%rcx, %rdx
	jb	.L104
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L106
	movq	stdin(%rip), %rdi
	jmp	.L105
	.p2align 4,,10
	.p2align 3
.L156:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %r8
	jmp	.L80
	.p2align 4,,10
	.p2align 3
.L106:
	movslq	%r12d, %r12
	leal	-1(%r13), %eax
	leaq	ban(%rip), %rcx
	leaq	(%r12,%r12,4), %rdx
	cltq
	leaq	(%r12,%rdx,2), %rdx
	leaq	(%rcx,%rdx,2), %rdx
	movb	$1, (%rdx,%rax)
	subl	$1, %ebp
	jnb	.L108
	movl	sz(%rip), %r9d
.L93:
	testl	%r9d, %r9d
	jle	.L113
.L95:
	xorl	%ebp, %ebp
	jmp	.L112
	.p2align 4,,10
	.p2align 3
.L161:
	addq	$1, %rbp
	cmpl	%ebp, sz(%rip)
	jle	.L113
.L112:
	movl	(%rbx,%rbp,4), %edi
	call	check
	testl	%eax, %eax
	je	.L161
.L111:
	leaq	.LC1(%rip), %rdi
	call	puts@PLT
	jmp	.L58
.L113:
	movl	H(%rip), %edx
	movl	W(%rip), %eax
	xorl	%r15d, %r15d
	leaq	map(%rip), %r14
	leaq	ban(%rip), %r13
	testl	%edx, %edx
	jle	.L110
	testl	%eax, %eax
	jle	.L110
.L132:
	movq	%r14, %r12
	xorl	%ebp, %ebp
	.p2align 4,,10
	.p2align 3
.L116:
	cmpb	$0, 0(%r13,%rbp)
	jne	.L115
	movl	(%r12), %eax
	leal	1(%rax), %edi
	movl	%edi, (%r12)
	call	check
	testl	%eax, %eax
	jne	.L111
	subl	$1, (%r12)
	movl	W(%rip), %eax
.L115:
	addq	$1, %rbp
	addq	$4, %r12
	cmpl	%ebp, %eax
	jg	.L116
	addl	$1, %r15d
	cmpl	%r15d, H(%rip)
	jle	.L110
	addq	$88, %r14
	addq	$22, %r13
	testl	%eax, %eax
	jg	.L132
.L110:
	leaq	.LC0(%rip), %rdi
	call	puts@PLT
	jmp	.L58
.L158:
	cmpl	%esi, %edi
	jle	.L130
	cmpl	%r9d, %esi
	je	.L131
	leaq	4+h(%rip), %rax
	movl	%r9d, %r11d
	addl	$1, %r9d
	movl	%ecx, (%rax,%r10,4)
	movl	%esi, %eax
	addl	$1, %eax
	cmpl	%eax, %edi
	jg	.L88
	jmp	.L162
.L131:
	movl	%r9d, %eax
	movl	%r9d, %r11d
	addl	$1, %r9d
	addl	$1, %eax
	cmpl	%eax, %edi
	jg	.L88
	jmp	.L162
.L160:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L103
.L159:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L97
.L157:
	movl	$1, sz(%rip)
	leal	-1(%r12), %ebp
	testl	%r12d, %r12d
	jne	.L108
	jmp	.L95
.L155:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
	jmp	.L72
.L127:
	xorl	%esi, %esi
	jmp	.L77
.L154:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
	jmp	.L66
.L153:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rcx
	movq	16(%rdi), %rdx
	jmp	.L60
.L152:
	addq	$8, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L151:
	.cfi_restore_state
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L120
.L130:
	movl	%esi, %eax
	jmp	.L90
	.cfi_endproc
.LFE56:
	.size	main, .-main
	.globl	vol
	.bss
	.align 4
	.type	vol, @object
	.size	vol, 4
vol:
	.zero	4
	.globl	ok
	.align 4
	.type	ok, @object
	.size	ok, 4
ok:
	.zero	4
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	h
	.align 32
	.type	h, @object
	.size	h, 1616
h:
	.zero	1616
	.globl	mv
	.data
	.align 32
	.type	mv, @object
	.size	mv, 32
mv:
	.long	-1
	.long	0
	.long	0
	.long	1
	.long	1
	.long	0
	.long	0
	.long	-1
	.globl	mk
	.bss
	.align 32
	.type	mk, @object
	.size	mk, 484
mk:
	.zero	484
	.globl	ban
	.align 32
	.type	ban, @object
	.size	ban, 484
ban:
	.zero	484
	.globl	map
	.align 32
	.type	map, @object
	.size	map, 1936
map:
	.zero	1936
	.globl	C
	.align 4
	.type	C, @object
	.size	C, 4
C:
	.zero	4
	.globl	W
	.align 4
	.type	W, @object
	.size	W, 4
W:
	.zero	4
	.globl	H
	.align 4
	.type	H, @object
	.size	H, 4
H:
	.zero	4
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

// AOJ 2083 Black Force
// 2018.3.26 bal4u

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int  H, W, C;
int  map[22][22];
char ban[22][22];
char mk[22][22];
int  mv[4][2] = {{-1,0},{0,1},{1,0},{0,-1}};
int  h[404], sz;
int  ok, vol;

//#define getchar_unlocked()  getchar()
int in()
{
	int n = 0, c = getchar_unlocked();
	do n = 10*n + (c & 0xf), c = getchar_unlocked(); while (c >= '0');
	return n;
}

void dfs(int r, int c, int h)
{
	int i, nr, nc;

	if (mk[r][c] || h <= map[r][c]) return;
	mk[r][c] = 1;
	vol += h - map[r][c];
	if (ban[r][c] || r == 0 || r == H-1 || c == 0 || c == W-1) ok = 0;
	for (i = 0; i < 4; i++) {
		nr = r + mv[i][0], nc = c + mv[i][1];
		if (nr < 0 || nr >= H || nc < 0 || nc >= W) continue;
		dfs(nr, nc, h);
	}
}

int check(int h)
{
	int r, c;

	memset(mk, 0, sizeof(mk));
	for (r = 1; r < H-1; r++) for (c = 1; c < W-1; c++) {
		if (!mk[r][c] && map[r][c] < h) {
			ok = 1, vol = 0;
			dfs(r, c, h);
			if (ok && vol >= C) return 1;
		}
	}
	return 0;
}

int cmp(int *a, int *b) { return *a - *b; }

int uniq(int *a, int n)
{
	int i, j;
	
	for (i = 0, j = 1; j < n; j++) {
		while (j < n && a[j] == a[i]) j++;
		if (j < n) if (++i != j) a[i] = a[j];
	}
	return i+1;
}

int main()
{
	int R, i, r, c;

	while (H = in()) {
		memset(ban, 0, sizeof(ban));
		W = in(), C = in(), R = in();

		sz = 0;
		for (r = 0; r < H; r++) for (c = 0; c < W; c++) {
			h[sz++] = map[r][c] = in();
		}
		qsort(h, sz, sizeof(int), cmp);
		sz = uniq(h, sz);

		while (R--) ban[in()-1][in()-1] = 1;

		for (i = 0; i < sz; i++) if (check(h[i])) goto yes;

		for (r = 0; r < H; r++) for (c = 0; c < W; c++) {
			if (ban[r][c]) continue;
			map[r][c]++;
			if (check(map[r][c])) goto yes;
			map[r][c]--;
		}
		puts("No");
		continue;
yes:	puts("Yes");
	}
	return 0;
}


4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 1 2
1 1
3 6 6 1
1 6 7 1 7 1
5 1 2 8 1 6
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 1 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 2 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 0 1 2
1 1
3 6 6 1
1 6 7 1 7 1
5 1 2 8 1 10
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 1 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 3 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 2 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 0 1 2
2 1 1 2
2 0 1 2
1 1
3 6 6 1
1 6 7 1 7 1
5 1 2 8 1 10
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 1 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 1 2
1 1
3 6 6 1
1 6 9 1 7 1
5 1 2 8 1 6
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 2 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 2 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 0 1 2
1 1
3 6 6 1
1 6 7 1 7 1
5 1 2 8 1 10
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 1 1
3 1 1 1 1 5
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 3 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 2 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 0 1 2
2 1 1 2
2 0 1 2
1 1
3 6 6 1
1 6 7 1 7 1
5 1 2 4 1 10
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 1 3
3 1 1 3 2 2
3 1 1 1 1 2
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 0 1 2
2 1 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 1 2
1 1
3 6 2 1
1 6 9 1 7 1
5 1 2 8 1 6
1 4 3 1 5 1
1 4
5 6 21 1
1 1 3 3 3 1
3 1 1 1 2 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 0
2 0 1 1
2 1 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
0 1 1 2
2 1 1 2
2 1 1 2
1 1
3 6 2 1
1 6 9 1 7 1
5 1 2 8 1 6
1 4 3 1 5 1
1 4
5 6 2 1
1 1 3 3 3 1
3 1 1 1 2 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 6 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
1 1 1 2
2 1 1 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 1 2
1 1
3 6 6 1
1 6 7 1 7 1
5 1 2 8 1 6
1 4 3 1 5 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 1 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0
 4 4 1 1
2 2 2 2
2 1 1 2
2 1 0 2
2 1 2 2
1 1
4 4 1 1
2 2 2 2
2 1 1 2
2 1 1 2
2 1 2 2
2 2
4 4 1 1
2 2 2 2
2 1 2 2
2 1 1 2
2 0 1 2
1 1
3 6 6 1
1 6 1 1 7 1
7 1 2 8 1 10
1 4 3 1 0 1
1 4
5 6 21 1
1 3 3 3 3 1
3 1 1 1 1 3
3 1 1 3 2 2
3 1 1 1 1 3
1 3 3 3 3 1
3 4
0 0 0 0

Yes
No
No
No
Yes
 Yes
Yes
No
No
Yes
 Yes
Yes
Yes
No
Yes
 Yes
No
No
No
No
 Yes
Yes
No
No
No
 Yes
Yes
Yes
No
No
 Yes
No
No
Yes
No
 Yes
No
No
Yes
Yes
 No
No
No
No
Yes
 Yes
No
Yes
No
Yes

Given the following C code and unoptimized assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
// AOJ 2083 Black Force
// 2018.3.26 bal4u

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int  H, W, C;
int  map[22][22];
char ban[22][22];
char mk[22][22];
int  mv[4][2] = {{-1,0},{0,1},{1,0},{0,-1}};
int  h[404], sz;
int  ok, vol;

//#define getchar_unlocked()  getchar()
int in()
{
	int n = 0, c = getchar_unlocked();
	do n = 10*n + (c & 0xf), c = getchar_unlocked(); while (c >= '0');
	return n;
}

void dfs(int r, int c, int h)
{
	int i, nr, nc;

	if (mk[r][c] || h <= map[r][c]) return;
	mk[r][c] = 1;
	vol += h - map[r][c];
	if (ban[r][c] || r == 0 || r == H-1 || c == 0 || c == W-1) ok = 0;
	for (i = 0; i < 4; i++) {
		nr = r + mv[i][0], nc = c + mv[i][1];
		if (nr < 0 || nr >= H || nc < 0 || nc >= W) continue;
		dfs(nr, nc, h);
	}
}

int check(int h)
{
	int r, c;

	memset(mk, 0, sizeof(mk));
	for (r = 1; r < H-1; r++) for (c = 1; c < W-1; c++) {
		if (!mk[r][c] && map[r][c] < h) {
			ok = 1, vol = 0;
			dfs(r, c, h);
			if (ok && vol >= C) return 1;
		}
	}
	return 0;
}

int cmp(int *a, int *b) { return *a - *b; }

int uniq(int *a, int n)
{
	int i, j;
	
	for (i = 0, j = 1; j < n; j++) {
		while (j < n && a[j] == a[i]) j++;
		if (j < n) if (++i != j) a[i] = a[j];
	}
	return i+1;
}

int main()
{
	int R, i, r, c;

	while (H = in()) {
		memset(ban, 0, sizeof(ban));
		W = in(), C = in(), R = in();

		sz = 0;
		for (r = 0; r < H; r++) for (c = 0; c < W; c++) {
			h[sz++] = map[r][c] = in();
		}
		qsort(h, sz, sizeof(int), cmp);
		sz = uniq(h, sz);

		while (R--) ban[in()-1][in()-1] = 1;

		for (i = 0; i < sz; i++) if (check(h[i])) goto yes;

		for (r = 0; r < H; r++) for (c = 0; c < W; c++) {
			if (ban[r][c]) continue;
			map[r][c]++;
			if (check(map[r][c])) goto yes;
			map[r][c]--;
		}
		puts("No");
		continue;
yes:	puts("Yes");
	}
	return 0;
}

```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	H
	.bss
	.align 4
	.type	H, @object
	.size	H, 4
H:
	.zero	4
	.globl	W
	.align 4
	.type	W, @object
	.size	W, 4
W:
	.zero	4
	.globl	C
	.align 4
	.type	C, @object
	.size	C, 4
C:
	.zero	4
	.globl	map
	.align 32
	.type	map, @object
	.size	map, 1936
map:
	.zero	1936
	.globl	ban
	.align 32
	.type	ban, @object
	.size	ban, 484
ban:
	.zero	484
	.globl	mk
	.align 32
	.type	mk, @object
	.size	mk, 484
mk:
	.zero	484
	.globl	mv
	.data
	.align 32
	.type	mv, @object
	.size	mv, 32
mv:
	.long	-1
	.long	0
	.long	0
	.long	1
	.long	1
	.long	0
	.long	0
	.long	-1
	.globl	h
	.bss
	.align 32
	.type	h, @object
	.size	h, 1616
h:
	.zero	1616
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	ok
	.align 4
	.type	ok, @object
	.size	ok, 4
ok:
	.zero	4
	.globl	vol
	.align 4
	.type	vol, @object
	.size	vol, 4
vol:
	.zero	4
	.text
	.globl	in
	.type	in, @function
in:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movl	$0, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
.L2:
	movl	-8(%rbp), %edx
	movl	%edx, %eax
	sall	$2, %eax
	addl	%edx, %eax
	addl	%eax, %eax
	movl	%eax, %edx
	movl	-4(%rbp), %eax
	andl	$15, %eax
	addl	%edx, %eax
	movl	%eax, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
	cmpl	$47, -4(%rbp)
	jg	.L2
	movl	-8(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	in, .-in
	.globl	dfs
	.type	dfs, @function
dfs:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -20(%rbp)
	movl	%esi, -24(%rbp)
	movl	%edx, -28(%rbp)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L15
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -28(%rbp)
	jle	.L15
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movb	$1, (%rax)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-28(%rbp), %eax
	subl	%edx, %eax
	movl	%eax, %ecx
	movl	vol(%rip), %eax
	addl	%ecx, %eax
	movl	%eax, vol(%rip)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L8
	cmpl	$0, -20(%rbp)
	je	.L8
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -20(%rbp)
	je	.L8
	cmpl	$0, -24(%rbp)
	je	.L8
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -24(%rbp)
	jne	.L9
.L8:
	movl	$0, ok(%rip)
.L9:
	movl	$0, -12(%rbp)
	jmp	.L10
.L14:
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	mv(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-20(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -8(%rbp)
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+mv(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-24(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -4(%rbp)
	cmpl	$0, -8(%rbp)
	js	.L16
	movl	H(%rip), %eax
	cmpl	%eax, -8(%rbp)
	jge	.L16
	cmpl	$0, -4(%rbp)
	js	.L16
	movl	W(%rip), %eax
	cmpl	%eax, -4(%rbp)
	jge	.L16
	movl	-28(%rbp), %edx
	movl	-4(%rbp), %ecx
	movl	-8(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	call	dfs
	jmp	.L13
.L16:
	nop
.L13:
	addl	$1, -12(%rbp)
.L10:
	cmpl	$3, -12(%rbp)
	jle	.L14
	jmp	.L4
.L15:
	nop
.L4:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	dfs, .-dfs
	.globl	check
	.type	check, @function
check:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -20(%rbp)
	movl	$484, %edx
	movl	$0, %esi
	leaq	mk(%rip), %rax
	movq	%rax, %rdi
	call	memset@PLT
	movl	$1, -8(%rbp)
	jmp	.L18
.L23:
	movl	$1, -4(%rbp)
	jmp	.L19
.L22:
	movl	-4(%rbp), %eax
	movslq	%eax, %rcx
	movl	-8(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L20
	movl	-4(%rbp), %eax
	movslq	%eax, %rcx
	movl	-8(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jle	.L20
	movl	$1, ok(%rip)
	movl	$0, vol(%rip)
	movl	-20(%rbp), %edx
	movl	-4(%rbp), %ecx
	movl	-8(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	call	dfs
	movl	ok(%rip), %eax
	testl	%eax, %eax
	je	.L20
	movl	vol(%rip), %edx
	movl	C(%rip), %eax
	cmpl	%eax, %edx
	jl	.L20
	movl	$1, %eax
	jmp	.L21
.L20:
	addl	$1, -4(%rbp)
.L19:
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -4(%rbp)
	jl	.L22
	addl	$1, -8(%rbp)
.L18:
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -8(%rbp)
	jl	.L23
	movl	$0, %eax
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	check, .-check
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	cmp, .-cmp
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -8(%rbp)
	movl	$1, -4(%rbp)
	jmp	.L27
.L30:
	addl	$1, -4(%rbp)
.L28:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L29
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	movq	-24(%rbp), %rax
	addq	%rcx, %rax
	movl	(%rax), %eax
	cmpl	%eax, %edx
	je	.L30
.L29:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L31
	addl	$1, -8(%rbp)
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	je	.L31
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-8(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
.L31:
	addl	$1, -4(%rbp)
.L27:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L28
	movl	-8(%rbp), %eax
	addl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	uniq, .-uniq
	.section	.rodata
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
	jmp	.L35
.L53:
	movl	$484, %edx
	movl	$0, %esi
	leaq	ban(%rip), %rax
	movq	%rax, %rdi
	call	memset@PLT
	movl	$0, %eax
	call	in
	movl	%eax, W(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, C(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, -32(%rbp)
	movl	$0, sz(%rip)
	movl	$0, -24(%rbp)
	jmp	.L36
.L39:
	movl	$0, -20(%rbp)
	jmp	.L37
.L38:
	movl	$0, %eax
	call	in
	movl	%eax, %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	sz(%rip), %ecx
	leal	1(%rcx), %eax
	movl	%eax, sz(%rip)
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	movslq	%ecx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	h(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -20(%rbp)
.L37:
	movl	W(%rip), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L38
	addl	$1, -24(%rbp)
.L36:
	movl	H(%rip), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L39
	movl	sz(%rip), %eax
	cltq
	leaq	cmp(%rip), %rdx
	movq	%rdx, %rcx
	movl	$4, %edx
	movq	%rax, %rsi
	leaq	h(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	movl	sz(%rip), %eax
	movl	%eax, %esi
	leaq	h(%rip), %rax
	movq	%rax, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	jmp	.L40
.L41:
	movl	$0, %eax
	call	in
	leal	-1(%rax), %ebx
	movl	$0, %eax
	call	in
	subl	$1, %eax
	movslq	%eax, %rcx
	movslq	%ebx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movb	$1, (%rax)
.L40:
	movl	-32(%rbp), %eax
	leal	-1(%rax), %edx
	movl	%edx, -32(%rbp)
	testl	%eax, %eax
	jne	.L41
	movl	$0, -28(%rbp)
	jmp	.L42
.L45:
	movl	-28(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	h(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	check
	testl	%eax, %eax
	jne	.L55
	addl	$1, -28(%rbp)
.L42:
	movl	sz(%rip), %eax
	cmpl	%eax, -28(%rbp)
	jl	.L45
	movl	$0, -24(%rbp)
	jmp	.L46
.L52:
	movl	$0, -20(%rbp)
	jmp	.L47
.L51:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L56
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	check
	testl	%eax, %eax
	jne	.L57
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	-1(%rax), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L49
.L56:
	nop
.L49:
	addl	$1, -20(%rbp)
.L47:
	movl	W(%rip), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L51
	addl	$1, -24(%rbp)
.L46:
	movl	H(%rip), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L52
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L35
.L55:
	nop
	jmp	.L44
.L57:
	nop
.L44:
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L35:
	movl	$0, %eax
	call	in
	movl	%eax, H(%rip)
	movl	H(%rip), %eax
	testl	%eax, %eax
	jne	.L53
	movl	$0, %eax
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
train
	.file	"temp.c"
	.text
	.globl	H
	.bss
	.align 4
	.type	H, @object
	.size	H, 4
H:
	.zero	4
	.globl	W
	.align 4
	.type	W, @object
	.size	W, 4
W:
	.zero	4
	.globl	C
	.align 4
	.type	C, @object
	.size	C, 4
C:
	.zero	4
	.globl	map
	.align 32
	.type	map, @object
	.size	map, 1936
map:
	.zero	1936
	.globl	ban
	.align 32
	.type	ban, @object
	.size	ban, 484
ban:
	.zero	484
	.globl	mk
	.align 32
	.type	mk, @object
	.size	mk, 484
mk:
	.zero	484
	.globl	mv
	.data
	.align 32
	.type	mv, @object
	.size	mv, 32
mv:
	.long	-1
	.long	0
	.long	0
	.long	1
	.long	1
	.long	0
	.long	0
	.long	-1
	.globl	h
	.bss
	.align 32
	.type	h, @object
	.size	h, 1616
h:
	.zero	1616
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	ok
	.align 4
	.type	ok, @object
	.size	ok, 4
ok:
	.zero	4
	.globl	vol
	.align 4
	.type	vol, @object
	.size	vol, 4
vol:
	.zero	4
	.text
	.globl	in
	.type	in, @function
in:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$16, %rsp
	movl	$0, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
.L2:
	movl	-8(%rbp), %edx
	movl	%edx, %eax
	sall	$2, %eax
	addl	%edx, %eax
	addl	%eax, %eax
	movl	%eax, %edx
	movl	-4(%rbp), %eax
	andl	$15, %eax
	addl	%edx, %eax
	movl	%eax, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
	cmpl	$47, -4(%rbp)
	jg	.L2
	movl	-8(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	in, .-in
	.globl	dfs
	.type	dfs, @function
dfs:
.LFB7:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -20(%rbp)
	movl	%esi, -24(%rbp)
	movl	%edx, -28(%rbp)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L15
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -28(%rbp)
	jle	.L15
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movb	$1, (%rax)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-28(%rbp), %eax
	subl	%edx, %eax
	movl	%eax, %ecx
	movl	vol(%rip), %eax
	addl	%ecx, %eax
	movl	%eax, vol(%rip)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-20(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L8
	cmpl	$0, -20(%rbp)
	je	.L8
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -20(%rbp)
	je	.L8
	cmpl	$0, -24(%rbp)
	je	.L8
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -24(%rbp)
	jne	.L9
.L8:
	movl	$0, ok(%rip)
.L9:
	movl	$0, -12(%rbp)
	jmp	.L10
.L14:
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	mv(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-20(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -8(%rbp)
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	4+mv(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	-24(%rbp), %eax
	addl	%edx, %eax
	movl	%eax, -4(%rbp)
	cmpl	$0, -8(%rbp)
	js	.L16
	movl	H(%rip), %eax
	cmpl	%eax, -8(%rbp)
	jge	.L16
	cmpl	$0, -4(%rbp)
	js	.L16
	movl	W(%rip), %eax
	cmpl	%eax, -4(%rbp)
	jge	.L16
	movl	-28(%rbp), %edx
	movl	-4(%rbp), %ecx
	movl	-8(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	call	dfs
	jmp	.L13
.L16:
	nop
.L13:
	addl	$1, -12(%rbp)
.L10:
	cmpl	$3, -12(%rbp)
	jle	.L14
	jmp	.L4
.L15:
	nop
.L4:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	dfs, .-dfs
	.globl	check
	.type	check, @function
check:
.LFB8:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$32, %rsp
	movl	%edi, -20(%rbp)
	movl	$484, %edx
	movl	$0, %esi
	leaq	mk(%rip), %rax
	movq	%rax, %rdi
	call	memset@PLT
	movl	$1, -8(%rbp)
	jmp	.L18
.L23:
	movl	$1, -4(%rbp)
	jmp	.L19
.L22:
	movl	-4(%rbp), %eax
	movslq	%eax, %rcx
	movl	-8(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	mk(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L20
	movl	-4(%rbp), %eax
	movslq	%eax, %rcx
	movl	-8(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jle	.L20
	movl	$1, ok(%rip)
	movl	$0, vol(%rip)
	movl	-20(%rbp), %edx
	movl	-4(%rbp), %ecx
	movl	-8(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	call	dfs
	movl	ok(%rip), %eax
	testl	%eax, %eax
	je	.L20
	movl	vol(%rip), %edx
	movl	C(%rip), %eax
	cmpl	%eax, %edx
	jl	.L20
	movl	$1, %eax
	jmp	.L21
.L20:
	addl	$1, -4(%rbp)
.L19:
	movl	W(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -4(%rbp)
	jl	.L22
	addl	$1, -8(%rbp)
.L18:
	movl	H(%rip), %eax
	subl	$1, %eax
	cmpl	%eax, -8(%rbp)
	jl	.L23
	movl	$0, %eax
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	check, .-check
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	movq	-8(%rbp), %rax
	movl	(%rax), %edx
	movq	-16(%rbp), %rax
	movl	(%rax), %ecx
	movl	%edx, %eax
	subl	%ecx, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	cmp, .-cmp
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB10:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -24(%rbp)
	movl	%esi, -28(%rbp)
	movl	$0, -8(%rbp)
	movl	$1, -4(%rbp)
	jmp	.L27
.L30:
	addl	$1, -4(%rbp)
.L28:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L29
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	movq	-24(%rbp), %rax
	addq	%rcx, %rax
	movl	(%rax), %eax
	cmpl	%eax, %edx
	je	.L30
.L29:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L31
	addl	$1, -8(%rbp)
	movl	-8(%rbp), %eax
	cmpl	-4(%rbp), %eax
	je	.L31
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-8(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
.L31:
	addl	$1, -4(%rbp)
.L27:
	movl	-4(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L28
	movl	-8(%rbp), %eax
	addl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	uniq, .-uniq
	.section	.rodata
.LC0:
	.string	"No"
.LC1:
	.string	"Yes"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
	jmp	.L35
.L53:
	movl	$484, %edx
	movl	$0, %esi
	leaq	ban(%rip), %rax
	movq	%rax, %rdi
	call	memset@PLT
	movl	$0, %eax
	call	in
	movl	%eax, W(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, C(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, -32(%rbp)
	movl	$0, sz(%rip)
	movl	$0, -24(%rbp)
	jmp	.L36
.L39:
	movl	$0, -20(%rbp)
	jmp	.L37
.L38:
	movl	$0, %eax
	call	in
	movl	%eax, %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	sz(%rip), %ecx
	leal	1(%rcx), %eax
	movl	%eax, sz(%rip)
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	movslq	%ecx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	h(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -20(%rbp)
.L37:
	movl	W(%rip), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L38
	addl	$1, -24(%rbp)
.L36:
	movl	H(%rip), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L39
	movl	sz(%rip), %eax
	cltq
	leaq	cmp(%rip), %rdx
	movq	%rdx, %rcx
	movl	$4, %edx
	movq	%rax, %rsi
	leaq	h(%rip), %rax
	movq	%rax, %rdi
	call	qsort@PLT
	movl	sz(%rip), %eax
	movl	%eax, %esi
	leaq	h(%rip), %rax
	movq	%rax, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	jmp	.L40
.L41:
	movl	$0, %eax
	call	in
	leal	-1(%rax), %ebx
	movl	$0, %eax
	call	in
	subl	$1, %eax
	movslq	%eax, %rcx
	movslq	%ebx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movb	$1, (%rax)
.L40:
	movl	-32(%rbp), %eax
	leal	-1(%rax), %edx
	movl	%edx, -32(%rbp)
	testl	%eax, %eax
	jne	.L41
	movl	$0, -28(%rbp)
	jmp	.L42
.L45:
	movl	-28(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	h(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	check
	testl	%eax, %eax
	jne	.L55
	addl	$1, -28(%rbp)
.L42:
	movl	sz(%rip), %eax
	cmpl	%eax, -28(%rbp)
	jl	.L45
	movl	$0, -24(%rbp)
	jmp	.L46
.L52:
	movl	$0, -20(%rbp)
	jmp	.L47
.L51:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	ban(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	testb	%al, %al
	jne	.L56
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	1(%rax), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	check
	testl	%eax, %eax
	jne	.L57
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rcx, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	-1(%rax), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-24(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rdx, %rax
	addq	%rax, %rax
	addq	%rsi, %rax
	leaq	0(,%rax,4), %rdx
	leaq	map(%rip), %rax
	movl	%ecx, (%rdx,%rax)
	jmp	.L49
.L56:
	nop
.L49:
	addl	$1, -20(%rbp)
.L47:
	movl	W(%rip), %eax
	cmpl	%eax, -20(%rbp)
	jl	.L51
	addl	$1, -24(%rbp)
.L46:
	movl	H(%rip), %eax
	cmpl	%eax, -24(%rbp)
	jl	.L52
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
	jmp	.L35
.L55:
	nop
	jmp	.L44
.L57:
	nop
.L44:
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L35:
	movl	$0, %eax
	call	in
	movl	%eax, H(%rip)
	movl	H(%rip), %eax
	testl	%eax, %eax
	jne	.L53
	movl	$0, %eax
	movq	-8(%rbp), %rbx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
