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

```c
// AOJ 2663: RUPC
// 2018.1.3 bal4u@uu

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

int a[300002]; long long sa[300002]; int sz;
int b[1000002];
long long c[300002];

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

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

long long inl()
{
	int c; long long n;
//	while ((c = getchar_unlocked()) < '0');
	c = getchar_unlocked();
	n = 0; do n = (n<<3)+(n<<1) + (c & 0xf), c = getchar_unlocked();
	while (c >= '0');
	return n;
}

int bsch(int x)
{
	int m, l = 0, r = sz;

    while (l < r) {
        m = (l + r) >> 1;
		if (a[m] == x) return m;
        if (a[m] < x) l = m + 1; else r = m;
    }
	return l-1;
}

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

int main()
{
	int n, m, i;
	long long s;

	n = in();

#if 0
	for (i = 0; i < n; i++) a[i] = in();
	qsort(a, n, sizeof(int), cmp);
#else
#define VMAX 1000000
	i = n; while (i--) b[in()]++;
	for (m = 0, i = 0; i <= VMAX; i++) while (b[i]) a[m++] = i, b[i]--;
#endif

	sz = uniq(a, n);

	m = in();
	for (i = 0; i < m; i++) b[i] = in();
	for (i = 0; i < m; i++) c[i] = inl();

	for (i = 0; i < m; i++) {
		if (b[i] < a[0]) s = 0;
		else             s = sa[bsch(b[i])];

		puts(s >= c[i]? "Yes": "No");
	}
	return 0;
}


```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	a
	.bss
	.align 32
	.type	a, @object
	.size	a, 1200008
a:
	.zero	1200008
	.globl	sa
	.align 32
	.type	sa, @object
	.size	sa, 2400016
sa:
	.zero	2400016
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 4000008
b:
	.zero	4000008
	.globl	c
	.align 32
	.type	c, @object
	.size	c, 2400016
c:
	.zero	2400016
	.text
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB6:
	.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
.LFE6:
	.size	cmp, .-cmp
	.globl	in
	.type	in, @function
in:
.LFB7:
	.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
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
	movl	$0, -8(%rbp)
.L4:
	movl	-8(%rbp), %eax
	leal	0(,%rax,8), %edx
	movl	-8(%rbp), %eax
	addl	%eax, %eax
	addl	%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	.L4
	movl	-8(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	in, .-in
	.globl	inl
	.type	inl, @function
inl:
.LFB8:
	.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
	call	getchar_unlocked@PLT
	movl	%eax, -12(%rbp)
	movq	$0, -8(%rbp)
.L7:
	movq	-8(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	-8(%rbp), %rax
	addq	%rax, %rax
	addq	%rax, %rdx
	movl	-12(%rbp), %eax
	cltq
	andl	$15, %eax
	addq	%rdx, %rax
	movq	%rax, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -12(%rbp)
	cmpl	$47, -12(%rbp)
	jg	.L7
	movq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	inl, .-inl
	.globl	bsch
	.type	bsch, @function
bsch:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -20(%rbp)
	movl	$0, -12(%rbp)
	movl	sz(%rip), %eax
	movl	%eax, -8(%rbp)
	jmp	.L10
.L14:
	movl	-12(%rbp), %edx
	movl	-8(%rbp), %eax
	addl	%edx, %eax
	sarl	%eax
	movl	%eax, -4(%rbp)
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jne	.L11
	movl	-4(%rbp), %eax
	jmp	.L12
.L11:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jle	.L13
	movl	-4(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -12(%rbp)
	jmp	.L10
.L13:
	movl	-4(%rbp), %eax
	movl	%eax, -8(%rbp)
.L10:
	movl	-12(%rbp), %eax
	cmpl	-8(%rbp), %eax
	jl	.L14
	movl	-12(%rbp), %eax
	subl	$1, %eax
.L12:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	bsch, .-bsch
	.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, -12(%rbp)
	movl	$1, -8(%rbp)
	jmp	.L16
.L23:
	movl	$1, -4(%rbp)
	jmp	.L17
.L19:
	addl	$1, -8(%rbp)
	addl	$1, -4(%rbp)
.L17:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L18
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	movq	-24(%rbp), %rax
	addq	%rcx, %rax
	movl	(%rax), %eax
	cmpl	%eax, %edx
	je	.L19
.L18:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L20
	cmpl	$0, -12(%rbp)
	jne	.L21
	movq	-24(%rbp), %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	movq	%rax, sa(%rip)
	jmp	.L22
.L21:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	addq	%rax, %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	%rcx, (%rdx,%rax)
.L22:
	addl	$1, -12(%rbp)
	movl	-12(%rbp), %eax
	cmpl	-8(%rbp), %eax
	je	.L20
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-12(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
.L20:
	addl	$1, -8(%rbp)
.L16:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L23
	cmpl	$0, -12(%rbp)
	jne	.L24
	movq	-24(%rbp), %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	movq	%rax, sa(%rip)
	jmp	.L25
.L24:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	addq	%rax, %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	%rcx, (%rdx,%rax)
.L25:
	movl	-12(%rbp), %eax
	addl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	uniq, .-uniq
	.section	.rodata
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.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
	subq	$32, %rsp
	movl	$0, %eax
	call	in
	movl	%eax, -12(%rbp)
	movl	-12(%rbp), %eax
	movl	%eax, -16(%rbp)
	jmp	.L28
.L29:
	movl	$0, %eax
	call	in
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L28:
	movl	-16(%rbp), %eax
	leal	-1(%rax), %edx
	movl	%edx, -16(%rbp)
	testl	%eax, %eax
	jne	.L29
	movl	$0, -20(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L30
.L32:
	movl	-20(%rbp), %eax
	leal	1(%rax), %edx
	movl	%edx, -20(%rbp)
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	a(%rip), %rdx
	movl	-16(%rbp), %eax
	movl	%eax, (%rcx,%rdx)
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	-1(%rax), %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L31:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jne	.L32
	addl	$1, -16(%rbp)
.L30:
	cmpl	$1000000, -16(%rbp)
	jle	.L31
	movl	-12(%rbp), %eax
	movl	%eax, %esi
	leaq	a(%rip), %rax
	movq	%rax, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, -20(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L34
.L35:
	movl	$0, %eax
	call	in
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -16(%rbp)
.L34:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L35
	movl	$0, -16(%rbp)
	jmp	.L36
.L37:
	movl	$0, %eax
	call	inl
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	c(%rip), %rdx
	movq	%rax, (%rcx,%rdx)
	addl	$1, -16(%rbp)
.L36:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L37
	movl	$0, -16(%rbp)
	jmp	.L38
.L43:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	a(%rip), %eax
	cmpl	%eax, %edx
	jge	.L39
	movq	$0, -8(%rbp)
	jmp	.L40
.L39:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	bsch
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rax
	movq	%rax, -8(%rbp)
.L40:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	c(%rip), %rax
	movq	(%rdx,%rax), %rax
	cmpq	%rax, -8(%rbp)
	jl	.L41
	leaq	.LC0(%rip), %rax
	jmp	.L42
.L41:
	leaq	.LC1(%rip), %rax
.L42:
	movq	%rax, %rdi
	call	puts@PLT
	addl	$1, -16(%rbp)
.L38:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L43
	movl	$0, %eax
	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:
.LFB39:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE39:
	.size	cmp, .-cmp
	.p2align 4
	.globl	in
	.type	in, @function
in:
.LFB40:
	.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
.LFE40:
	.size	in, .-in
	.p2align 4
	.globl	inl
	.type	inl, @function
inl:
.LFB41:
	.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	.L22
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L15:
	xorl	%r12d, %r12d
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L16:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L13
.L17:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L19:
	leaq	(%r12,%r12,4), %rsi
	andl	$15, %eax
	leaq	(%rax,%rsi,2), %r12
	cmpq	%rcx, %rdx
	jb	.L16
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L13
	movq	stdin(%rip), %rdi
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L13:
	movq	%r12, %rax
	popq	%r12
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22:
	.cfi_restore_state
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L15
	.cfi_endproc
.LFE41:
	.size	inl, .-inl
	.p2align 4
	.globl	bsch
	.type	bsch, @function
bsch:
.LFB42:
	.cfi_startproc
	endbr64
	movl	sz(%rip), %edx
	xorl	%ecx, %ecx
	leaq	a(%rip), %r8
	jmp	.L26
	.p2align 4,,10
	.p2align 3
.L27:
	leal	(%rcx,%rdx), %eax
	sarl	%eax
	movslq	%eax, %rsi
	cmpl	%edi, (%r8,%rsi,4)
	je	.L23
	jl	.L29
	movl	%eax, %edx
.L26:
	cmpl	%edx, %ecx
	jl	.L27
	leal	-1(%rcx), %eax
.L23:
	ret
	.p2align 4,,10
	.p2align 3
.L29:
	leal	1(%rax), %ecx
	jmp	.L26
	.cfi_endproc
.LFE42:
	.size	bsch, .-bsch
	.p2align 4
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB43:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	cmpl	$1, %esi
	jle	.L32
	movl	%esi, %r9d
	movl	$1, %eax
	xorl	%r10d, %r10d
	leaq	sa(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L31:
	movslq	%r10d, %r11
	movslq	%eax, %rdx
	movl	$1, %ecx
	movslq	(%rbx,%r11,4), %r8
	leaq	0(,%r11,4), %rbp
	leaq	(%rbx,%rdx,4), %rdx
	.p2align 4,,10
	.p2align 3
.L38:
	movl	(%rdx), %edi
	movl	%eax, %esi
	leal	1(%rax), %eax
	cmpl	%r8d, %edi
	jne	.L50
	addl	$1, %ecx
	addq	$4, %rdx
	cmpl	%eax, %r9d
	jg	.L38
.L33:
	addl	$1, %eax
	cmpl	%eax, %r9d
	jg	.L31
.L37:
	leal	1(%r10), %r8d
	testl	%r10d, %r10d
	je	.L32
	movslq	%r10d, %rdi
	movslq	%ecx, %rcx
	leaq	sa(%rip), %rsi
	movslq	(%rbx,%rdi,4), %rax
	imulq	%rcx, %rax
	movq	%rax, %rdx
	leal	-1(%r10), %eax
	cltq
	addq	(%rsi,%rax,8), %rdx
	movl	%r8d, %eax
	movq	%rdx, (%rsi,%rdi,8)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L50:
	.cfi_restore_state
	testl	%r10d, %r10d
	jne	.L51
	movslq	(%rbx), %rax
	movslq	%ecx, %rdx
	imulq	%rdx, %rax
	movq	%rax, (%r12)
.L36:
	addl	$1, %r10d
	movl	%r10d, %eax
	cmpl	%esi, %r10d
	je	.L33
	movl	%esi, %eax
	movl	%edi, 4(%rbx,%rbp)
	addl	$1, %eax
	cmpl	%eax, %r9d
	jg	.L31
	jmp	.L37
	.p2align 4,,10
	.p2align 3
.L51:
	leal	-1(%r10), %eax
	movslq	%ecx, %rdx
	cltq
	imulq	%rdx, %r8
	addq	(%r12,%rax,8), %r8
	movq	%r8, (%r12,%r11,8)
	jmp	.L36
.L32:
	movslq	(%rbx), %rax
	movslq	%ecx, %rcx
	movl	$1, %r8d
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	imulq	%rcx, %rax
	movq	%rax, sa(%rip)
	movl	%r8d, %eax
	ret
	.cfi_endproc
.LFE43:
	.size	uniq, .-uniq
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB44:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%eax, %eax
	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	b(%rip), %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	call	in
	movl	%eax, %ebp
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L62
.L61:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L116
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L56:
	xorl	%r13d, %r13d
	jmp	.L60
	.p2align 4,,10
	.p2align 3
.L57:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L59
.L58:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L60:
	leal	0(%r13,%r13,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r13d
	cmpq	%rcx, %rdx
	jb	.L57
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L59
	movq	stdin(%rip), %rdi
	jmp	.L58
.L59:
	movslq	%r13d, %r13
	addl	$1, (%rbx,%r13,4)
	subl	$1, %r12d
	jne	.L61
.L62:
	xorl	%edi, %edi
	xorl	%r10d, %r10d
	leaq	a(%rip), %r13
	.p2align 4,,10
	.p2align 3
.L54:
	movl	(%rbx,%rdi,4), %esi
	movl	%edi, %r9d
	testl	%esi, %esi
	je	.L68
	leal	-1(%rsi), %edx
	movl	%esi, %r12d
	movl	%edx, %r11d
	cmpl	$2, %edx
	jbe	.L93
	movslq	%r10d, %rax
	movd	%r9d, %xmm1
	leaq	0(%r13,%rax,4), %rdx
	movl	%esi, %eax
	pshufd	$0, %xmm1, %xmm0
	shrl	$2, %eax
	leal	-1(%rax), %ecx
	leaq	16(%rdx), %rax
	salq	$4, %rcx
	addq	%rax, %rcx
	jmp	.L64
	.p2align 4,,10
	.p2align 3
.L117:
	addq	$16, %rax
.L64:
	movups	%xmm0, (%rdx)
	movq	%rax, %rdx
	cmpq	%rcx, %rax
	jne	.L117
	movl	%esi, %edx
	andl	$-4, %edx
	subl	%edx, %esi
	leal	(%rdx,%r10), %eax
	cmpl	%edx, %r12d
	je	.L65
	leal	-1(%rsi), %edx
.L63:
	movslq	%eax, %r12
	leal	1(%rax), %ecx
	movl	%r9d, 0(%r13,%r12,4)
	testl	%edx, %edx
	je	.L65
	movslq	%ecx, %rcx
	addl	$2, %eax
	movl	%r9d, 0(%r13,%rcx,4)
	cmpl	$2, %esi
	je	.L65
	cltq
	movl	%r9d, 0(%r13,%rax,4)
.L65:
	movl	$0, (%rbx,%rdi,4)
	leal	1(%r10,%r11), %r10d
.L68:
	addq	$1, %rdi
	cmpq	$1000001, %rdi
	jne	.L54
	movl	%ebp, %esi
	movq	%r13, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	xorl	%eax, %eax
	call	in
	testl	%eax, %eax
	jle	.L98
	movq	stdin(%rip), %rdi
	leaq	b(%rip), %rbx
	leal	-1(%rax), %r15d
	leaq	4(%rbx), %rax
	movq	%rbx, %rbp
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	leaq	(%rax,%r15,4), %r12
.L76:
	cmpq	%rcx, %rsi
	jnb	.L118
	leaq	1(%rsi), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rsi), %eax
.L71:
	xorl	%r14d, %r14d
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L72:
	leaq	1(%rdx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L74
.L73:
	movq	%rsi, %rdx
.L75:
	leal	(%r14,%r14,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r14d
	cmpq	%rcx, %rdx
	jb	.L72
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	cmpl	$47, %eax
	jg	.L73
.L74:
	movl	%r14d, 0(%rbp)
	addq	$4, %rbp
	cmpq	%r12, %rbp
	jne	.L76
	leaq	c(%rip), %rbp
	leaq	8(%rbp), %rax
	movq	%rbp, %r14
	leaq	(%rax,%r15,8), %rax
	movq	%rax, 8(%rsp)
	cmpq	%rcx, %rsi
	jnb	.L119
.L77:
	leaq	1(%rsi), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rsi), %eax
.L78:
	xorl	%r15d, %r15d
	jmp	.L82
	.p2align 4,,10
	.p2align 3
.L79:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L81
.L80:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L82:
	leaq	(%r15,%r15,4), %rsi
	andl	$15, %eax
	leaq	(%rax,%rsi,2), %r15
	cmpq	%rcx, %rdx
	jb	.L79
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L81
	movq	stdin(%rip), %rdi
	jmp	.L80
.L93:
	movl	%r10d, %eax
	jmp	.L63
.L81:
	movq	%r15, (%r14)
	addq	$8, %r14
	cmpq	%r14, 8(%rsp)
	je	.L120
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rsi
	jb	.L77
.L119:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L78
.L98:
	addq	$24, %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
.L120:
	.cfi_restore_state
	leaq	sa(%rip), %r15
	leaq	.LC1(%rip), %r14
	jmp	.L83
.L85:
	leaq	.LC0(%rip), %rdi
	cmpq	%rax, 0(%rbp)
	jle	.L114
	movq	%r14, %rdi
.L114:
	call	puts@PLT
	addq	$4, %rbx
	addq	$8, %rbp
	cmpq	%r12, %rbx
	je	.L98
.L83:
	movl	(%rbx), %edi
	movl	sz(%rip), %edx
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	cmpl	0(%r13), %edi
	jl	.L85
	cmpl	%ecx, %edx
	jle	.L121
	.p2align 4,,10
	.p2align 3
.L89:
	leal	(%rdx,%rcx), %eax
	sarl	%eax
	movslq	%eax, %rsi
	cmpl	0(%r13,%rsi,4), %edi
	je	.L87
	jg	.L122
	movl	%eax, %edx
.L88:
	cmpl	%ecx, %edx
	jg	.L89
.L121:
	leal	-1(%rcx), %eax
	movslq	%eax, %rsi
.L87:
	movq	(%r15,%rsi,8), %rax
	jmp	.L85
.L122:
	leal	1(%rax), %ecx
	jmp	.L88
.L118:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L71
.L116:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L56
	.cfi_endproc
.LFE44:
	.size	main, .-main
	.globl	c
	.bss
	.align 32
	.type	c, @object
	.size	c, 2400016
c:
	.zero	2400016
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 4000008
b:
	.zero	4000008
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	sa
	.align 32
	.type	sa, @object
	.size	sa, 2400016
sa:
	.zero	2400016
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 1200008
a:
	.zero	1200008
	.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:
.LFB39:
	.cfi_startproc
	endbr64
	movl	(%rdi), %eax
	subl	(%rsi), %eax
	ret
	.cfi_endproc
.LFE39:
	.size	cmp, .-cmp
	.p2align 4
	.globl	in
	.type	in, @function
in:
.LFB40:
	.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
.LFE40:
	.size	in, .-in
	.p2align 4
	.globl	inl
	.type	inl, @function
inl:
.LFB41:
	.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	.L22
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L15:
	xorl	%r12d, %r12d
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L16:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L13
.L17:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L19:
	leaq	(%r12,%r12,4), %rsi
	andl	$15, %eax
	leaq	(%rax,%rsi,2), %r12
	cmpq	%rcx, %rdx
	jb	.L16
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L13
	movq	stdin(%rip), %rdi
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L13:
	movq	%r12, %rax
	popq	%r12
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L22:
	.cfi_restore_state
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L15
	.cfi_endproc
.LFE41:
	.size	inl, .-inl
	.p2align 4
	.globl	bsch
	.type	bsch, @function
bsch:
.LFB42:
	.cfi_startproc
	endbr64
	movl	sz(%rip), %edx
	xorl	%ecx, %ecx
	leaq	a(%rip), %r8
	jmp	.L26
	.p2align 4,,10
	.p2align 3
.L27:
	leal	(%rcx,%rdx), %eax
	sarl	%eax
	movslq	%eax, %rsi
	cmpl	%edi, (%r8,%rsi,4)
	je	.L23
	jl	.L29
	movl	%eax, %edx
.L26:
	cmpl	%edx, %ecx
	jl	.L27
	leal	-1(%rcx), %eax
.L23:
	ret
	.p2align 4,,10
	.p2align 3
.L29:
	leal	1(%rax), %ecx
	jmp	.L26
	.cfi_endproc
.LFE42:
	.size	bsch, .-bsch
	.p2align 4
	.globl	uniq
	.type	uniq, @function
uniq:
.LFB43:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	cmpl	$1, %esi
	jle	.L32
	movl	%esi, %r9d
	movl	$1, %eax
	xorl	%r10d, %r10d
	leaq	sa(%rip), %r12
	.p2align 4,,10
	.p2align 3
.L31:
	movslq	%r10d, %r11
	movslq	%eax, %rdx
	movl	$1, %ecx
	movslq	(%rbx,%r11,4), %r8
	leaq	0(,%r11,4), %rbp
	leaq	(%rbx,%rdx,4), %rdx
	.p2align 4,,10
	.p2align 3
.L38:
	movl	(%rdx), %edi
	movl	%eax, %esi
	leal	1(%rax), %eax
	cmpl	%r8d, %edi
	jne	.L50
	addl	$1, %ecx
	addq	$4, %rdx
	cmpl	%eax, %r9d
	jg	.L38
.L33:
	addl	$1, %eax
	cmpl	%eax, %r9d
	jg	.L31
.L37:
	leal	1(%r10), %r8d
	testl	%r10d, %r10d
	je	.L32
	movslq	%r10d, %rdi
	movslq	%ecx, %rcx
	leaq	sa(%rip), %rsi
	movslq	(%rbx,%rdi,4), %rax
	imulq	%rcx, %rax
	movq	%rax, %rdx
	leal	-1(%r10), %eax
	cltq
	addq	(%rsi,%rax,8), %rdx
	movl	%r8d, %eax
	movq	%rdx, (%rsi,%rdi,8)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L50:
	.cfi_restore_state
	testl	%r10d, %r10d
	jne	.L51
	movslq	(%rbx), %rax
	movslq	%ecx, %rdx
	imulq	%rdx, %rax
	movq	%rax, (%r12)
.L36:
	addl	$1, %r10d
	movl	%r10d, %eax
	cmpl	%esi, %r10d
	je	.L33
	movl	%esi, %eax
	movl	%edi, 4(%rbx,%rbp)
	addl	$1, %eax
	cmpl	%eax, %r9d
	jg	.L31
	jmp	.L37
	.p2align 4,,10
	.p2align 3
.L51:
	leal	-1(%r10), %eax
	movslq	%ecx, %rdx
	cltq
	imulq	%rdx, %r8
	addq	(%r12,%rax,8), %r8
	movq	%r8, (%r12,%r11,8)
	jmp	.L36
.L32:
	movslq	(%rbx), %rax
	movslq	%ecx, %rcx
	movl	$1, %r8d
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	imulq	%rcx, %rax
	movq	%rax, sa(%rip)
	movl	%r8d, %eax
	ret
	.cfi_endproc
.LFE43:
	.size	uniq, .-uniq
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB44:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%eax, %eax
	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	b(%rip), %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	call	in
	movl	%eax, %ebp
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L62
.L61:
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rax
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rax
	jnb	.L116
	leaq	1(%rax), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rax), %eax
.L56:
	xorl	%r13d, %r13d
	jmp	.L60
	.p2align 4,,10
	.p2align 3
.L57:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L59
.L58:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L60:
	leal	0(%r13,%r13,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r13d
	cmpq	%rcx, %rdx
	jb	.L57
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L59
	movq	stdin(%rip), %rdi
	jmp	.L58
.L59:
	movslq	%r13d, %r13
	addl	$1, (%rbx,%r13,4)
	subl	$1, %r12d
	jne	.L61
.L62:
	xorl	%edi, %edi
	xorl	%r10d, %r10d
	leaq	a(%rip), %r13
	.p2align 4,,10
	.p2align 3
.L54:
	movl	(%rbx,%rdi,4), %esi
	movl	%edi, %r9d
	testl	%esi, %esi
	je	.L68
	leal	-1(%rsi), %edx
	movl	%esi, %r12d
	movl	%edx, %r11d
	cmpl	$2, %edx
	jbe	.L93
	movslq	%r10d, %rax
	movd	%r9d, %xmm1
	leaq	0(%r13,%rax,4), %rdx
	movl	%esi, %eax
	pshufd	$0, %xmm1, %xmm0
	shrl	$2, %eax
	leal	-1(%rax), %ecx
	leaq	16(%rdx), %rax
	salq	$4, %rcx
	addq	%rax, %rcx
	jmp	.L64
	.p2align 4,,10
	.p2align 3
.L117:
	addq	$16, %rax
.L64:
	movups	%xmm0, (%rdx)
	movq	%rax, %rdx
	cmpq	%rcx, %rax
	jne	.L117
	movl	%esi, %edx
	andl	$-4, %edx
	subl	%edx, %esi
	leal	(%rdx,%r10), %eax
	cmpl	%edx, %r12d
	je	.L65
	leal	-1(%rsi), %edx
.L63:
	movslq	%eax, %r12
	leal	1(%rax), %ecx
	movl	%r9d, 0(%r13,%r12,4)
	testl	%edx, %edx
	je	.L65
	movslq	%ecx, %rcx
	addl	$2, %eax
	movl	%r9d, 0(%r13,%rcx,4)
	cmpl	$2, %esi
	je	.L65
	cltq
	movl	%r9d, 0(%r13,%rax,4)
.L65:
	movl	$0, (%rbx,%rdi,4)
	leal	1(%r10,%r11), %r10d
.L68:
	addq	$1, %rdi
	cmpq	$1000001, %rdi
	jne	.L54
	movl	%ebp, %esi
	movq	%r13, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	xorl	%eax, %eax
	call	in
	testl	%eax, %eax
	jle	.L98
	movq	stdin(%rip), %rdi
	leaq	b(%rip), %rbx
	leal	-1(%rax), %r15d
	leaq	4(%rbx), %rax
	movq	%rbx, %rbp
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	leaq	(%rax,%r15,4), %r12
.L76:
	cmpq	%rcx, %rsi
	jnb	.L118
	leaq	1(%rsi), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rsi), %eax
.L71:
	xorl	%r14d, %r14d
	jmp	.L75
	.p2align 4,,10
	.p2align 3
.L72:
	leaq	1(%rdx), %rsi
	movq	%rsi, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L74
.L73:
	movq	%rsi, %rdx
.L75:
	leal	(%r14,%r14,4), %esi
	andl	$15, %eax
	leal	(%rax,%rsi,2), %r14d
	cmpq	%rcx, %rdx
	jb	.L72
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	cmpl	$47, %eax
	jg	.L73
.L74:
	movl	%r14d, 0(%rbp)
	addq	$4, %rbp
	cmpq	%r12, %rbp
	jne	.L76
	leaq	c(%rip), %rbp
	leaq	8(%rbp), %rax
	movq	%rbp, %r14
	leaq	(%rax,%r15,8), %rax
	movq	%rax, 8(%rsp)
	cmpq	%rcx, %rsi
	jnb	.L119
.L77:
	leaq	1(%rsi), %rdx
	movq	%rdx, 8(%rdi)
	movzbl	(%rsi), %eax
.L78:
	xorl	%r15d, %r15d
	jmp	.L82
	.p2align 4,,10
	.p2align 3
.L79:
	leaq	1(%rdx), %rax
	movq	%rax, 8(%rdi)
	movzbl	(%rdx), %eax
	cmpl	$47, %eax
	jle	.L81
.L80:
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
.L82:
	leaq	(%r15,%r15,4), %rsi
	andl	$15, %eax
	leaq	(%rax,%rsi,2), %r15
	cmpq	%rcx, %rdx
	jb	.L79
	call	__uflow@PLT
	cmpl	$47, %eax
	jle	.L81
	movq	stdin(%rip), %rdi
	jmp	.L80
.L93:
	movl	%r10d, %eax
	jmp	.L63
.L81:
	movq	%r15, (%r14)
	addq	$8, %r14
	cmpq	%r14, 8(%rsp)
	je	.L120
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rsi
	movq	16(%rdi), %rcx
	cmpq	%rcx, %rsi
	jb	.L77
.L119:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L78
.L98:
	addq	$24, %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
.L120:
	.cfi_restore_state
	leaq	sa(%rip), %r15
	leaq	.LC1(%rip), %r14
	jmp	.L83
.L85:
	leaq	.LC0(%rip), %rdi
	cmpq	%rax, 0(%rbp)
	jle	.L114
	movq	%r14, %rdi
.L114:
	call	puts@PLT
	addq	$4, %rbx
	addq	$8, %rbp
	cmpq	%r12, %rbx
	je	.L98
.L83:
	movl	(%rbx), %edi
	movl	sz(%rip), %edx
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	cmpl	0(%r13), %edi
	jl	.L85
	cmpl	%ecx, %edx
	jle	.L121
	.p2align 4,,10
	.p2align 3
.L89:
	leal	(%rdx,%rcx), %eax
	sarl	%eax
	movslq	%eax, %rsi
	cmpl	0(%r13,%rsi,4), %edi
	je	.L87
	jg	.L122
	movl	%eax, %edx
.L88:
	cmpl	%ecx, %edx
	jg	.L89
.L121:
	leal	-1(%rcx), %eax
	movslq	%eax, %rsi
.L87:
	movq	(%r15,%rsi,8), %rax
	jmp	.L85
.L122:
	leal	1(%rax), %ecx
	jmp	.L88
.L118:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L71
.L116:
	call	__uflow@PLT
	movq	stdin(%rip), %rdi
	movq	8(%rdi), %rdx
	movq	16(%rdi), %rcx
	jmp	.L56
	.cfi_endproc
.LFE44:
	.size	main, .-main
	.globl	c
	.bss
	.align 32
	.type	c, @object
	.size	c, 2400016
c:
	.zero	2400016
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 4000008
b:
	.zero	4000008
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	sa
	.align 32
	.type	sa, @object
	.size	sa, 2400016
sa:
	.zero	2400016
	.globl	a
	.align 32
	.type	a, @object
	.size	a, 1200008
a:
	.zero	1200008
	.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 2663: RUPC
// 2018.1.3 bal4u@uu

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

int a[300002]; long long sa[300002]; int sz;
int b[1000002];
long long c[300002];

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

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

long long inl()
{
	int c; long long n;
//	while ((c = getchar_unlocked()) < '0');
	c = getchar_unlocked();
	n = 0; do n = (n<<3)+(n<<1) + (c & 0xf), c = getchar_unlocked();
	while (c >= '0');
	return n;
}

int bsch(int x)
{
	int m, l = 0, r = sz;

    while (l < r) {
        m = (l + r) >> 1;
		if (a[m] == x) return m;
        if (a[m] < x) l = m + 1; else r = m;
    }
	return l-1;
}

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

int main()
{
	int n, m, i;
	long long s;

	n = in();

#if 0
	for (i = 0; i < n; i++) a[i] = in();
	qsort(a, n, sizeof(int), cmp);
#else
#define VMAX 1000000
	i = n; while (i--) b[in()]++;
	for (m = 0, i = 0; i <= VMAX; i++) while (b[i]) a[m++] = i, b[i]--;
#endif

	sz = uniq(a, n);

	m = in();
	for (i = 0; i < m; i++) b[i] = in();
	for (i = 0; i < m; i++) c[i] = inl();

	for (i = 0; i < m; i++) {
		if (b[i] < a[0]) s = 0;
		else             s = sa[bsch(b[i])];

		puts(s >= c[i]? "Yes": "No");
	}
	return 0;
}



6
1 2 1 3 4 5
7
1 3 4 5 3 1 0
2 8 5 3 4 5 3
 6
1 2 1 3 4 5
7
1 3 4 10 3 1 0
2 4 5 3 4 5 3
 6
1 2 1 5 4 5
7
1 3 4 7 3 1 0
2 8 5 3 7 5 3
 6
1 2 2 5 4 5
7
1 3 4 7 3 1 0
2 8 5 3 7 5 3
 6
2 0 1 3 3 5
7
1 1 4 10 3 1 0
2 4 5 3 4 5 3
 6
1 2 1 6 3 1
7
1 3 4 7 3 1 0
2 8 5 3 3 0 3
 6
1 2 2 8 6 1
7
2 3 4 2 3 1 0
1 8 1 3 3 1 1
 6
1 2 0 15 0 1
7
2 5 4 2 6 1 0
1 16 1 3 5 1 1
 6
1 1 0 15 0 0
7
2 5 4 2 10 1 0
1 28 1 3 0 1 1
 6
1 2 1 5 4 5
7
1 3 3 7 3 1 0
2 8 5 3 7 5 3

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

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

```c
// AOJ 2663: RUPC
// 2018.1.3 bal4u@uu

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

int a[300002]; long long sa[300002]; int sz;
int b[1000002];
long long c[300002];

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

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

long long inl()
{
	int c; long long n;
//	while ((c = getchar_unlocked()) < '0');
	c = getchar_unlocked();
	n = 0; do n = (n<<3)+(n<<1) + (c & 0xf), c = getchar_unlocked();
	while (c >= '0');
	return n;
}

int bsch(int x)
{
	int m, l = 0, r = sz;

    while (l < r) {
        m = (l + r) >> 1;
		if (a[m] == x) return m;
        if (a[m] < x) l = m + 1; else r = m;
    }
	return l-1;
}

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

int main()
{
	int n, m, i;
	long long s;

	n = in();

#if 0
	for (i = 0; i < n; i++) a[i] = in();
	qsort(a, n, sizeof(int), cmp);
#else
#define VMAX 1000000
	i = n; while (i--) b[in()]++;
	for (m = 0, i = 0; i <= VMAX; i++) while (b[i]) a[m++] = i, b[i]--;
#endif

	sz = uniq(a, n);

	m = in();
	for (i = 0; i < m; i++) b[i] = in();
	for (i = 0; i < m; i++) c[i] = inl();

	for (i = 0; i < m; i++) {
		if (b[i] < a[0]) s = 0;
		else             s = sa[bsch(b[i])];

		puts(s >= c[i]? "Yes": "No");
	}
	return 0;
}


```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	a
	.bss
	.align 32
	.type	a, @object
	.size	a, 1200008
a:
	.zero	1200008
	.globl	sa
	.align 32
	.type	sa, @object
	.size	sa, 2400016
sa:
	.zero	2400016
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 4000008
b:
	.zero	4000008
	.globl	c
	.align 32
	.type	c, @object
	.size	c, 2400016
c:
	.zero	2400016
	.text
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB6:
	.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
.LFE6:
	.size	cmp, .-cmp
	.globl	in
	.type	in, @function
in:
.LFB7:
	.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
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
	movl	$0, -8(%rbp)
.L4:
	movl	-8(%rbp), %eax
	leal	0(,%rax,8), %edx
	movl	-8(%rbp), %eax
	addl	%eax, %eax
	addl	%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	.L4
	movl	-8(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	in, .-in
	.globl	inl
	.type	inl, @function
inl:
.LFB8:
	.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
	call	getchar_unlocked@PLT
	movl	%eax, -12(%rbp)
	movq	$0, -8(%rbp)
.L7:
	movq	-8(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	-8(%rbp), %rax
	addq	%rax, %rax
	addq	%rax, %rdx
	movl	-12(%rbp), %eax
	cltq
	andl	$15, %eax
	addq	%rdx, %rax
	movq	%rax, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -12(%rbp)
	cmpl	$47, -12(%rbp)
	jg	.L7
	movq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	inl, .-inl
	.globl	bsch
	.type	bsch, @function
bsch:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -20(%rbp)
	movl	$0, -12(%rbp)
	movl	sz(%rip), %eax
	movl	%eax, -8(%rbp)
	jmp	.L10
.L14:
	movl	-12(%rbp), %edx
	movl	-8(%rbp), %eax
	addl	%edx, %eax
	sarl	%eax
	movl	%eax, -4(%rbp)
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jne	.L11
	movl	-4(%rbp), %eax
	jmp	.L12
.L11:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jle	.L13
	movl	-4(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -12(%rbp)
	jmp	.L10
.L13:
	movl	-4(%rbp), %eax
	movl	%eax, -8(%rbp)
.L10:
	movl	-12(%rbp), %eax
	cmpl	-8(%rbp), %eax
	jl	.L14
	movl	-12(%rbp), %eax
	subl	$1, %eax
.L12:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	bsch, .-bsch
	.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, -12(%rbp)
	movl	$1, -8(%rbp)
	jmp	.L16
.L23:
	movl	$1, -4(%rbp)
	jmp	.L17
.L19:
	addl	$1, -8(%rbp)
	addl	$1, -4(%rbp)
.L17:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L18
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	movq	-24(%rbp), %rax
	addq	%rcx, %rax
	movl	(%rax), %eax
	cmpl	%eax, %edx
	je	.L19
.L18:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L20
	cmpl	$0, -12(%rbp)
	jne	.L21
	movq	-24(%rbp), %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	movq	%rax, sa(%rip)
	jmp	.L22
.L21:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	addq	%rax, %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	%rcx, (%rdx,%rax)
.L22:
	addl	$1, -12(%rbp)
	movl	-12(%rbp), %eax
	cmpl	-8(%rbp), %eax
	je	.L20
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-12(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
.L20:
	addl	$1, -8(%rbp)
.L16:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L23
	cmpl	$0, -12(%rbp)
	jne	.L24
	movq	-24(%rbp), %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	movq	%rax, sa(%rip)
	jmp	.L25
.L24:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	addq	%rax, %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	%rcx, (%rdx,%rax)
.L25:
	movl	-12(%rbp), %eax
	addl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	uniq, .-uniq
	.section	.rodata
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.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
	subq	$32, %rsp
	movl	$0, %eax
	call	in
	movl	%eax, -12(%rbp)
	movl	-12(%rbp), %eax
	movl	%eax, -16(%rbp)
	jmp	.L28
.L29:
	movl	$0, %eax
	call	in
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L28:
	movl	-16(%rbp), %eax
	leal	-1(%rax), %edx
	movl	%edx, -16(%rbp)
	testl	%eax, %eax
	jne	.L29
	movl	$0, -20(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L30
.L32:
	movl	-20(%rbp), %eax
	leal	1(%rax), %edx
	movl	%edx, -20(%rbp)
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	a(%rip), %rdx
	movl	-16(%rbp), %eax
	movl	%eax, (%rcx,%rdx)
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	-1(%rax), %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L31:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jne	.L32
	addl	$1, -16(%rbp)
.L30:
	cmpl	$1000000, -16(%rbp)
	jle	.L31
	movl	-12(%rbp), %eax
	movl	%eax, %esi
	leaq	a(%rip), %rax
	movq	%rax, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, -20(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L34
.L35:
	movl	$0, %eax
	call	in
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -16(%rbp)
.L34:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L35
	movl	$0, -16(%rbp)
	jmp	.L36
.L37:
	movl	$0, %eax
	call	inl
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	c(%rip), %rdx
	movq	%rax, (%rcx,%rdx)
	addl	$1, -16(%rbp)
.L36:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L37
	movl	$0, -16(%rbp)
	jmp	.L38
.L43:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	a(%rip), %eax
	cmpl	%eax, %edx
	jge	.L39
	movq	$0, -8(%rbp)
	jmp	.L40
.L39:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	bsch
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rax
	movq	%rax, -8(%rbp)
.L40:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	c(%rip), %rax
	movq	(%rdx,%rax), %rax
	cmpq	%rax, -8(%rbp)
	jl	.L41
	leaq	.LC0(%rip), %rax
	jmp	.L42
.L41:
	leaq	.LC1(%rip), %rax
.L42:
	movq	%rax, %rdi
	call	puts@PLT
	addl	$1, -16(%rbp)
.L38:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L43
	movl	$0, %eax
	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	a
	.bss
	.align 32
	.type	a, @object
	.size	a, 1200008
a:
	.zero	1200008
	.globl	sa
	.align 32
	.type	sa, @object
	.size	sa, 2400016
sa:
	.zero	2400016
	.globl	sz
	.align 4
	.type	sz, @object
	.size	sz, 4
sz:
	.zero	4
	.globl	b
	.align 32
	.type	b, @object
	.size	b, 4000008
b:
	.zero	4000008
	.globl	c
	.align 32
	.type	c, @object
	.size	c, 2400016
c:
	.zero	2400016
	.text
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB6:
	.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
.LFE6:
	.size	cmp, .-cmp
	.globl	in
	.type	in, @function
in:
.LFB7:
	.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
	call	getchar_unlocked@PLT
	movl	%eax, -4(%rbp)
	movl	$0, -8(%rbp)
.L4:
	movl	-8(%rbp), %eax
	leal	0(,%rax,8), %edx
	movl	-8(%rbp), %eax
	addl	%eax, %eax
	addl	%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	.L4
	movl	-8(%rbp), %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	in, .-in
	.globl	inl
	.type	inl, @function
inl:
.LFB8:
	.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
	call	getchar_unlocked@PLT
	movl	%eax, -12(%rbp)
	movq	$0, -8(%rbp)
.L7:
	movq	-8(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	-8(%rbp), %rax
	addq	%rax, %rax
	addq	%rax, %rdx
	movl	-12(%rbp), %eax
	cltq
	andl	$15, %eax
	addq	%rdx, %rax
	movq	%rax, -8(%rbp)
	call	getchar_unlocked@PLT
	movl	%eax, -12(%rbp)
	cmpl	$47, -12(%rbp)
	jg	.L7
	movq	-8(%rbp), %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	inl, .-inl
	.globl	bsch
	.type	bsch, @function
bsch:
.LFB9:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -20(%rbp)
	movl	$0, -12(%rbp)
	movl	sz(%rip), %eax
	movl	%eax, -8(%rbp)
	jmp	.L10
.L14:
	movl	-12(%rbp), %edx
	movl	-8(%rbp), %eax
	addl	%edx, %eax
	sarl	%eax
	movl	%eax, -4(%rbp)
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jne	.L11
	movl	-4(%rbp), %eax
	jmp	.L12
.L11:
	movl	-4(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	a(%rip), %rax
	movl	(%rdx,%rax), %eax
	cmpl	%eax, -20(%rbp)
	jle	.L13
	movl	-4(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -12(%rbp)
	jmp	.L10
.L13:
	movl	-4(%rbp), %eax
	movl	%eax, -8(%rbp)
.L10:
	movl	-12(%rbp), %eax
	cmpl	-8(%rbp), %eax
	jl	.L14
	movl	-12(%rbp), %eax
	subl	$1, %eax
.L12:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	bsch, .-bsch
	.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, -12(%rbp)
	movl	$1, -8(%rbp)
	jmp	.L16
.L23:
	movl	$1, -4(%rbp)
	jmp	.L17
.L19:
	addl	$1, -8(%rbp)
	addl	$1, -4(%rbp)
.L17:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L18
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %edx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rcx
	movq	-24(%rbp), %rax
	addq	%rcx, %rax
	movl	(%rax), %eax
	cmpl	%eax, %edx
	je	.L19
.L18:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jge	.L20
	cmpl	$0, -12(%rbp)
	jne	.L21
	movq	-24(%rbp), %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	movq	%rax, sa(%rip)
	jmp	.L22
.L21:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	addq	%rax, %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	%rcx, (%rdx,%rax)
.L22:
	addl	$1, -12(%rbp)
	movl	-12(%rbp), %eax
	cmpl	-8(%rbp), %eax
	je	.L20
	movl	-8(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	-12(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	movq	-24(%rbp), %rdx
	addq	%rcx, %rdx
	movl	(%rax), %eax
	movl	%eax, (%rdx)
.L20:
	addl	$1, -8(%rbp)
.L16:
	movl	-8(%rbp), %eax
	cmpl	-28(%rbp), %eax
	jl	.L23
	cmpl	$0, -12(%rbp)
	jne	.L24
	movq	-24(%rbp), %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	movq	%rax, sa(%rip)
	jmp	.L25
.L24:
	movl	-12(%rbp), %eax
	subl	$1, %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	movq	-24(%rbp), %rax
	addq	%rdx, %rax
	movl	(%rax), %eax
	movslq	%eax, %rdx
	movl	-4(%rbp), %eax
	cltq
	imulq	%rdx, %rax
	addq	%rax, %rcx
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	%rcx, (%rdx,%rax)
.L25:
	movl	-12(%rbp), %eax
	addl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	uniq, .-uniq
	.section	.rodata
.LC0:
	.string	"Yes"
.LC1:
	.string	"No"
	.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
	subq	$32, %rsp
	movl	$0, %eax
	call	in
	movl	%eax, -12(%rbp)
	movl	-12(%rbp), %eax
	movl	%eax, -16(%rbp)
	jmp	.L28
.L29:
	movl	$0, %eax
	call	in
	movslq	%eax, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	(%rcx,%rdx), %edx
	leal	1(%rdx), %ecx
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L28:
	movl	-16(%rbp), %eax
	leal	-1(%rax), %edx
	movl	%edx, -16(%rbp)
	testl	%eax, %eax
	jne	.L29
	movl	$0, -20(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L30
.L32:
	movl	-20(%rbp), %eax
	leal	1(%rax), %edx
	movl	%edx, -20(%rbp)
	cltq
	leaq	0(,%rax,4), %rcx
	leaq	a(%rip), %rdx
	movl	-16(%rbp), %eax
	movl	%eax, (%rcx,%rdx)
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	leal	-1(%rax), %ecx
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	%ecx, (%rdx,%rax)
.L31:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jne	.L32
	addl	$1, -16(%rbp)
.L30:
	cmpl	$1000000, -16(%rbp)
	jle	.L31
	movl	-12(%rbp), %eax
	movl	%eax, %esi
	leaq	a(%rip), %rax
	movq	%rax, %rdi
	call	uniq
	movl	%eax, sz(%rip)
	movl	$0, %eax
	call	in
	movl	%eax, -20(%rbp)
	movl	$0, -16(%rbp)
	jmp	.L34
.L35:
	movl	$0, %eax
	call	in
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,4), %rcx
	leaq	b(%rip), %rdx
	movl	%eax, (%rcx,%rdx)
	addl	$1, -16(%rbp)
.L34:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L35
	movl	$0, -16(%rbp)
	jmp	.L36
.L37:
	movl	$0, %eax
	call	inl
	movl	-16(%rbp), %edx
	movslq	%edx, %rdx
	leaq	0(,%rdx,8), %rcx
	leaq	c(%rip), %rdx
	movq	%rax, (%rcx,%rdx)
	addl	$1, -16(%rbp)
.L36:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L37
	movl	$0, -16(%rbp)
	jmp	.L38
.L43:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %edx
	movl	a(%rip), %eax
	cmpl	%eax, %edx
	jge	.L39
	movq	$0, -8(%rbp)
	jmp	.L40
.L39:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	b(%rip), %rax
	movl	(%rdx,%rax), %eax
	movl	%eax, %edi
	call	bsch
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	sa(%rip), %rax
	movq	(%rdx,%rax), %rax
	movq	%rax, -8(%rbp)
.L40:
	movl	-16(%rbp), %eax
	cltq
	leaq	0(,%rax,8), %rdx
	leaq	c(%rip), %rax
	movq	(%rdx,%rax), %rax
	cmpq	%rax, -8(%rbp)
	jl	.L41
	leaq	.LC0(%rip), %rax
	jmp	.L42
.L41:
	leaq	.LC1(%rip), %rax
.L42:
	movq	%rax, %rdi
	call	puts@PLT
	addl	$1, -16(%rbp)
.L38:
	movl	-16(%rbp), %eax
	cmpl	-20(%rbp), %eax
	jl	.L43
	movl	$0, %eax
	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:
