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

```c
#include<stdio.h>
#include<stdlib.h>
int lvl[8]={},god=0;
void judge(int s)
{
	if(s>=1&&s<=399) lvl[0]++;
	else if(s>=400&&s<=799) lvl[1]++;
	else if(s>=800&&s<=1199) lvl[2]++;
	else if(s>=1200&&s<=1599) lvl[3]++;
	else if(s>=1600&&s<=1999) lvl[4]++;
	else if(s>=2000&&s<=2399) lvl[5]++;
	else if(s>=2400&&s<=2799) lvl[6]++;
	else if(s>=2800&&s<=3199) lvl[7]++;
	else god++;
}
int main()
{
	int n,s,min=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&s);
		judge(s);
	}
	for(int i=0;i<8;i++)
		if(lvl[i]>0)
			min++;
	if(min==0) printf("1 %d\n",god);
	else printf("%d %d\n",min,min+god);
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	lvl
	.bss
	.align 32
	.type	lvl, @object
	.size	lvl, 32
lvl:
	.zero	32
	.globl	god
	.align 4
	.type	god, @object
	.size	god, 4
god:
	.zero	4
	.text
	.globl	judge
	.type	judge, @function
judge:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -4(%rbp)
	cmpl	$0, -4(%rbp)
	jle	.L2
	cmpl	$399, -4(%rbp)
	jg	.L2
	movl	lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, lvl(%rip)
	jmp	.L3
.L2:
	cmpl	$399, -4(%rbp)
	jle	.L4
	cmpl	$799, -4(%rbp)
	jg	.L4
	movl	4+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 4+lvl(%rip)
	jmp	.L3
.L4:
	cmpl	$799, -4(%rbp)
	jle	.L5
	cmpl	$1199, -4(%rbp)
	jg	.L5
	movl	8+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 8+lvl(%rip)
	jmp	.L3
.L5:
	cmpl	$1199, -4(%rbp)
	jle	.L6
	cmpl	$1599, -4(%rbp)
	jg	.L6
	movl	12+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 12+lvl(%rip)
	jmp	.L3
.L6:
	cmpl	$1599, -4(%rbp)
	jle	.L7
	cmpl	$1999, -4(%rbp)
	jg	.L7
	movl	16+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 16+lvl(%rip)
	jmp	.L3
.L7:
	cmpl	$1999, -4(%rbp)
	jle	.L8
	cmpl	$2399, -4(%rbp)
	jg	.L8
	movl	20+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 20+lvl(%rip)
	jmp	.L3
.L8:
	cmpl	$2399, -4(%rbp)
	jle	.L9
	cmpl	$2799, -4(%rbp)
	jg	.L9
	movl	24+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 24+lvl(%rip)
	jmp	.L3
.L9:
	cmpl	$2799, -4(%rbp)
	jle	.L10
	cmpl	$3199, -4(%rbp)
	jg	.L10
	movl	28+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 28+lvl(%rip)
	jmp	.L3
.L10:
	movl	god(%rip), %eax
	addl	$1, %eax
	movl	%eax, god(%rip)
	nop
.L3:
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	judge, .-judge
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"1 %d\n"
.LC2:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.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
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -20(%rbp)
	leaq	-28(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -16(%rbp)
	jmp	.L12
.L13:
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-24(%rbp), %eax
	movl	%eax, %edi
	call	judge
	addl	$1, -16(%rbp)
.L12:
	movl	-28(%rbp), %eax
	cmpl	%eax, -16(%rbp)
	jl	.L13
	movl	$0, -12(%rbp)
	jmp	.L14
.L16:
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	lvl(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jle	.L15
	addl	$1, -20(%rbp)
.L15:
	addl	$1, -12(%rbp)
.L14:
	cmpl	$7, -12(%rbp)
	jle	.L16
	cmpl	$0, -20(%rbp)
	jne	.L17
	movl	god(%rip), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	jmp	.L18
.L17:
	movl	god(%rip), %edx
	movl	-20(%rbp), %eax
	addl	%eax, %edx
	movl	-20(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
.L18:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.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	judge
	.type	judge, @function
judge:
.LFB39:
	.cfi_startproc
	endbr64
	leal	-1(%rdi), %eax
	cmpl	$398, %eax
	ja	.L2
	addl	$1, lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L2:
	leal	-400(%rdi), %eax
	cmpl	$399, %eax
	ja	.L4
	addl	$1, 4+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	leal	-800(%rdi), %eax
	cmpl	$399, %eax
	jbe	.L12
	leal	-1200(%rdi), %eax
	cmpl	$399, %eax
	ja	.L6
	addl	$1, 12+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	addl	$1, 8+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	leal	-1600(%rdi), %eax
	cmpl	$399, %eax
	jbe	.L13
	leal	-2000(%rdi), %eax
	cmpl	$399, %eax
	ja	.L8
	addl	$1, 20+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L13:
	addl	$1, 16+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L8:
	leal	-2400(%rdi), %eax
	cmpl	$399, %eax
	ja	.L9
	addl	$1, 24+lvl(%rip)
	ret
.L9:
	subl	$2800, %edi
	cmpl	$399, %edi
	ja	.L10
	addl	$1, 28+lvl(%rip)
	ret
.L10:
	addl	$1, god(%rip)
	ret
	.cfi_endproc
.LFE39:
	.size	judge, .-judge
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC2:
	.string	"1 %d\n"
.LC3:
	.string	"%d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB40:
	.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
	leaq	.LC0(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rbp, %rdi
	xorl	%ebx, %ebx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rsi
	leaq	4(%rsp), %r12
	call	__isoc99_scanf@PLT
	movl	(%rsp), %eax
	testl	%eax, %eax
	jg	.L15
	jmp	.L27
	.p2align 4,,10
	.p2align 3
.L36:
	addl	$1, lvl(%rip)
.L19:
	addl	$1, %ebx
	cmpl	%ebx, (%rsp)
	jle	.L27
.L15:
	movq	%r12, %rsi
	movq	%rbp, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	leal	-1(%rax), %edx
	cmpl	$398, %edx
	jbe	.L36
	leal	-400(%rax), %edx
	cmpl	$399, %edx
	ja	.L20
	addl	$1, 4+lvl(%rip)
	addl	$1, %ebx
	cmpl	%ebx, (%rsp)
	jg	.L15
.L27:
	movdqa	lvl(%rip), %xmm1
	pxor	%xmm2, %xmm2
	movdqa	16+lvl(%rip), %xmm0
	movl	god(%rip), %r8d
	pcmpgtd	%xmm2, %xmm1
	pcmpgtd	%xmm2, %xmm0
	pand	.LC1(%rip), %xmm0
	psubd	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	paddd	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	paddd	%xmm1, %xmm0
	movd	%xmm0, %edx
	testl	%edx, %edx
	jne	.L37
	movl	%r8d, %edx
	leaq	.LC2(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
.L28:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L38
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.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
.L20:
	.cfi_restore_state
	leal	-800(%rax), %edx
	cmpl	$399, %edx
	ja	.L21
	addl	$1, 8+lvl(%rip)
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L21:
	leal	-1200(%rax), %edx
	cmpl	$399, %edx
	ja	.L22
	addl	$1, 12+lvl(%rip)
	jmp	.L19
.L22:
	leal	-1600(%rax), %edx
	cmpl	$399, %edx
	ja	.L23
	addl	$1, 16+lvl(%rip)
	jmp	.L19
.L37:
	leal	(%r8,%rdx), %ecx
	leaq	.LC3(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L28
.L23:
	leal	-2000(%rax), %edx
	cmpl	$399, %edx
	jbe	.L39
	leal	-2400(%rax), %edx
	cmpl	$399, %edx
	ja	.L25
	addl	$1, 24+lvl(%rip)
	jmp	.L19
.L39:
	addl	$1, 20+lvl(%rip)
	jmp	.L19
.L25:
	subl	$2800, %eax
	cmpl	$399, %eax
	ja	.L26
	addl	$1, 28+lvl(%rip)
	jmp	.L19
.L26:
	addl	$1, god(%rip)
	jmp	.L19
.L38:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE40:
	.size	main, .-main
	.globl	god
	.bss
	.align 4
	.type	god, @object
	.size	god, 4
god:
	.zero	4
	.globl	lvl
	.align 32
	.type	lvl, @object
	.size	lvl, 32
lvl:
	.zero	32
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.long	1
	.long	1
	.long	1
	.long	1
	.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	judge
	.type	judge, @function
judge:
.LFB39:
	.cfi_startproc
	endbr64
	leal	-1(%rdi), %eax
	cmpl	$398, %eax
	ja	.L2
	addl	$1, lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L2:
	leal	-400(%rdi), %eax
	cmpl	$399, %eax
	ja	.L4
	addl	$1, 4+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	leal	-800(%rdi), %eax
	cmpl	$399, %eax
	jbe	.L12
	leal	-1200(%rdi), %eax
	cmpl	$399, %eax
	ja	.L6
	addl	$1, 12+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L12:
	addl	$1, 8+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	leal	-1600(%rdi), %eax
	cmpl	$399, %eax
	jbe	.L13
	leal	-2000(%rdi), %eax
	cmpl	$399, %eax
	ja	.L8
	addl	$1, 20+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L13:
	addl	$1, 16+lvl(%rip)
	ret
	.p2align 4,,10
	.p2align 3
.L8:
	leal	-2400(%rdi), %eax
	cmpl	$399, %eax
	ja	.L9
	addl	$1, 24+lvl(%rip)
	ret
.L9:
	subl	$2800, %edi
	cmpl	$399, %edi
	ja	.L10
	addl	$1, 28+lvl(%rip)
	ret
.L10:
	addl	$1, god(%rip)
	ret
	.cfi_endproc
.LFE39:
	.size	judge, .-judge
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC2:
	.string	"1 %d\n"
.LC3:
	.string	"%d %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB40:
	.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
	leaq	.LC0(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rbp, %rdi
	xorl	%ebx, %ebx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rsi
	leaq	4(%rsp), %r12
	call	__isoc99_scanf@PLT
	movl	(%rsp), %eax
	testl	%eax, %eax
	jg	.L15
	jmp	.L27
	.p2align 4,,10
	.p2align 3
.L36:
	addl	$1, lvl(%rip)
.L19:
	addl	$1, %ebx
	cmpl	%ebx, (%rsp)
	jle	.L27
.L15:
	movq	%r12, %rsi
	movq	%rbp, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	leal	-1(%rax), %edx
	cmpl	$398, %edx
	jbe	.L36
	leal	-400(%rax), %edx
	cmpl	$399, %edx
	ja	.L20
	addl	$1, 4+lvl(%rip)
	addl	$1, %ebx
	cmpl	%ebx, (%rsp)
	jg	.L15
.L27:
	movdqa	lvl(%rip), %xmm1
	pxor	%xmm2, %xmm2
	movdqa	16+lvl(%rip), %xmm0
	movl	god(%rip), %r8d
	pcmpgtd	%xmm2, %xmm1
	pcmpgtd	%xmm2, %xmm0
	pand	.LC1(%rip), %xmm0
	psubd	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$8, %xmm1
	paddd	%xmm1, %xmm0
	movdqa	%xmm0, %xmm1
	psrldq	$4, %xmm1
	paddd	%xmm1, %xmm0
	movd	%xmm0, %edx
	testl	%edx, %edx
	jne	.L37
	movl	%r8d, %edx
	leaq	.LC2(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
.L28:
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L38
	addq	$16, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax
	popq	%rbx
	.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
.L20:
	.cfi_restore_state
	leal	-800(%rax), %edx
	cmpl	$399, %edx
	ja	.L21
	addl	$1, 8+lvl(%rip)
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L21:
	leal	-1200(%rax), %edx
	cmpl	$399, %edx
	ja	.L22
	addl	$1, 12+lvl(%rip)
	jmp	.L19
.L22:
	leal	-1600(%rax), %edx
	cmpl	$399, %edx
	ja	.L23
	addl	$1, 16+lvl(%rip)
	jmp	.L19
.L37:
	leal	(%r8,%rdx), %ecx
	leaq	.LC3(%rip), %rsi
	movl	$1, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L28
.L23:
	leal	-2000(%rax), %edx
	cmpl	$399, %edx
	jbe	.L39
	leal	-2400(%rax), %edx
	cmpl	$399, %edx
	ja	.L25
	addl	$1, 24+lvl(%rip)
	jmp	.L19
.L39:
	addl	$1, 20+lvl(%rip)
	jmp	.L19
.L25:
	subl	$2800, %eax
	cmpl	$399, %eax
	ja	.L26
	addl	$1, 28+lvl(%rip)
	jmp	.L19
.L26:
	addl	$1, god(%rip)
	jmp	.L19
.L38:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE40:
	.size	main, .-main
	.globl	god
	.bss
	.align 4
	.type	god, @object
	.size	god, 4
god:
	.zero	4
	.globl	lvl
	.align 32
	.type	lvl, @object
	.size	lvl, 32
lvl:
	.zero	32
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.long	1
	.long	1
	.long	1
	.long	1
	.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:

#include<stdio.h>
#include<stdlib.h>
int lvl[8]={},god=0;
void judge(int s)
{
	if(s>=1&&s<=399) lvl[0]++;
	else if(s>=400&&s<=799) lvl[1]++;
	else if(s>=800&&s<=1199) lvl[2]++;
	else if(s>=1200&&s<=1599) lvl[3]++;
	else if(s>=1600&&s<=1999) lvl[4]++;
	else if(s>=2000&&s<=2399) lvl[5]++;
	else if(s>=2400&&s<=2799) lvl[6]++;
	else if(s>=2800&&s<=3199) lvl[7]++;
	else god++;
}
int main()
{
	int n,s,min=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&s);
		judge(s);
	}
	for(int i=0;i<8;i++)
		if(lvl[i]>0)
			min++;
	if(min==0) printf("1 %d\n",god);
	else printf("%d %d\n",min,min+god);
	return 0;
}
4
2100 2500 4217 2700
 20
800 810 820 830 840 850 860 870 880 890 900 1771 920 930 940 950 960 970 980 990
 5
1100 3348 2800 3200 3200
 20
800 810 820 830 840 850 860 870 880 890 900 1771 920 930 120 950 960 970 980 990
 5
1101 3348 2955 3200 2889
 5
1101 3348 2302 3200 2889
 4
2100 4691 248 409
 20
800 1586 820 830 840 850 860 433 1213 259 900 1303 920 1028 92 950 960 970 980 990
 20
800 1586 820 830 840 850 860 433 1213 259 900 1303 920 1028 92 2243 960 970 980 990
 20
800 2108 443 830 840 1093 116 614 398 92 399 1139 1229 646 92 2243 960 970 1914 990

2 3
 2 2
 2 5
 3 3
 2 4
 3 5
 3 4
 4 4
 5 5
 6 6

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

```c
#include<stdio.h>
#include<stdlib.h>
int lvl[8]={},god=0;
void judge(int s)
{
	if(s>=1&&s<=399) lvl[0]++;
	else if(s>=400&&s<=799) lvl[1]++;
	else if(s>=800&&s<=1199) lvl[2]++;
	else if(s>=1200&&s<=1599) lvl[3]++;
	else if(s>=1600&&s<=1999) lvl[4]++;
	else if(s>=2000&&s<=2399) lvl[5]++;
	else if(s>=2400&&s<=2799) lvl[6]++;
	else if(s>=2800&&s<=3199) lvl[7]++;
	else god++;
}
int main()
{
	int n,s,min=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&s);
		judge(s);
	}
	for(int i=0;i<8;i++)
		if(lvl[i]>0)
			min++;
	if(min==0) printf("1 %d\n",god);
	else printf("%d %d\n",min,min+god);
	return 0;
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	lvl
	.bss
	.align 32
	.type	lvl, @object
	.size	lvl, 32
lvl:
	.zero	32
	.globl	god
	.align 4
	.type	god, @object
	.size	god, 4
god:
	.zero	4
	.text
	.globl	judge
	.type	judge, @function
judge:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -4(%rbp)
	cmpl	$0, -4(%rbp)
	jle	.L2
	cmpl	$399, -4(%rbp)
	jg	.L2
	movl	lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, lvl(%rip)
	jmp	.L3
.L2:
	cmpl	$399, -4(%rbp)
	jle	.L4
	cmpl	$799, -4(%rbp)
	jg	.L4
	movl	4+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 4+lvl(%rip)
	jmp	.L3
.L4:
	cmpl	$799, -4(%rbp)
	jle	.L5
	cmpl	$1199, -4(%rbp)
	jg	.L5
	movl	8+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 8+lvl(%rip)
	jmp	.L3
.L5:
	cmpl	$1199, -4(%rbp)
	jle	.L6
	cmpl	$1599, -4(%rbp)
	jg	.L6
	movl	12+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 12+lvl(%rip)
	jmp	.L3
.L6:
	cmpl	$1599, -4(%rbp)
	jle	.L7
	cmpl	$1999, -4(%rbp)
	jg	.L7
	movl	16+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 16+lvl(%rip)
	jmp	.L3
.L7:
	cmpl	$1999, -4(%rbp)
	jle	.L8
	cmpl	$2399, -4(%rbp)
	jg	.L8
	movl	20+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 20+lvl(%rip)
	jmp	.L3
.L8:
	cmpl	$2399, -4(%rbp)
	jle	.L9
	cmpl	$2799, -4(%rbp)
	jg	.L9
	movl	24+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 24+lvl(%rip)
	jmp	.L3
.L9:
	cmpl	$2799, -4(%rbp)
	jle	.L10
	cmpl	$3199, -4(%rbp)
	jg	.L10
	movl	28+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 28+lvl(%rip)
	jmp	.L3
.L10:
	movl	god(%rip), %eax
	addl	$1, %eax
	movl	%eax, god(%rip)
	nop
.L3:
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	judge, .-judge
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"1 %d\n"
.LC2:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.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
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -20(%rbp)
	leaq	-28(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -16(%rbp)
	jmp	.L12
.L13:
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-24(%rbp), %eax
	movl	%eax, %edi
	call	judge
	addl	$1, -16(%rbp)
.L12:
	movl	-28(%rbp), %eax
	cmpl	%eax, -16(%rbp)
	jl	.L13
	movl	$0, -12(%rbp)
	jmp	.L14
.L16:
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	lvl(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jle	.L15
	addl	$1, -20(%rbp)
.L15:
	addl	$1, -12(%rbp)
.L14:
	cmpl	$7, -12(%rbp)
	jle	.L16
	cmpl	$0, -20(%rbp)
	jne	.L17
	movl	god(%rip), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	jmp	.L18
.L17:
	movl	god(%rip), %edx
	movl	-20(%rbp), %eax
	addl	%eax, %edx
	movl	-20(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
.L18:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.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	lvl
	.bss
	.align 32
	.type	lvl, @object
	.size	lvl, 32
lvl:
	.zero	32
	.globl	god
	.align 4
	.type	god, @object
	.size	god, 4
god:
	.zero	4
	.text
	.globl	judge
	.type	judge, @function
judge:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, -4(%rbp)
	cmpl	$0, -4(%rbp)
	jle	.L2
	cmpl	$399, -4(%rbp)
	jg	.L2
	movl	lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, lvl(%rip)
	jmp	.L3
.L2:
	cmpl	$399, -4(%rbp)
	jle	.L4
	cmpl	$799, -4(%rbp)
	jg	.L4
	movl	4+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 4+lvl(%rip)
	jmp	.L3
.L4:
	cmpl	$799, -4(%rbp)
	jle	.L5
	cmpl	$1199, -4(%rbp)
	jg	.L5
	movl	8+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 8+lvl(%rip)
	jmp	.L3
.L5:
	cmpl	$1199, -4(%rbp)
	jle	.L6
	cmpl	$1599, -4(%rbp)
	jg	.L6
	movl	12+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 12+lvl(%rip)
	jmp	.L3
.L6:
	cmpl	$1599, -4(%rbp)
	jle	.L7
	cmpl	$1999, -4(%rbp)
	jg	.L7
	movl	16+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 16+lvl(%rip)
	jmp	.L3
.L7:
	cmpl	$1999, -4(%rbp)
	jle	.L8
	cmpl	$2399, -4(%rbp)
	jg	.L8
	movl	20+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 20+lvl(%rip)
	jmp	.L3
.L8:
	cmpl	$2399, -4(%rbp)
	jle	.L9
	cmpl	$2799, -4(%rbp)
	jg	.L9
	movl	24+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 24+lvl(%rip)
	jmp	.L3
.L9:
	cmpl	$2799, -4(%rbp)
	jle	.L10
	cmpl	$3199, -4(%rbp)
	jg	.L10
	movl	28+lvl(%rip), %eax
	addl	$1, %eax
	movl	%eax, 28+lvl(%rip)
	jmp	.L3
.L10:
	movl	god(%rip), %eax
	addl	$1, %eax
	movl	%eax, god(%rip)
	nop
.L3:
	nop
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	judge, .-judge
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"1 %d\n"
.LC2:
	.string	"%d %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.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
	movq	%fs:40, %rax
	movq	%rax, -8(%rbp)
	xorl	%eax, %eax
	movl	$0, -20(%rbp)
	leaq	-28(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	$0, -16(%rbp)
	jmp	.L12
.L13:
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movl	-24(%rbp), %eax
	movl	%eax, %edi
	call	judge
	addl	$1, -16(%rbp)
.L12:
	movl	-28(%rbp), %eax
	cmpl	%eax, -16(%rbp)
	jl	.L13
	movl	$0, -12(%rbp)
	jmp	.L14
.L16:
	movl	-12(%rbp), %eax
	cltq
	leaq	0(,%rax,4), %rdx
	leaq	lvl(%rip), %rax
	movl	(%rdx,%rax), %eax
	testl	%eax, %eax
	jle	.L15
	addl	$1, -20(%rbp)
.L15:
	addl	$1, -12(%rbp)
.L14:
	cmpl	$7, -12(%rbp)
	jle	.L16
	cmpl	$0, -20(%rbp)
	jne	.L17
	movl	god(%rip), %eax
	movl	%eax, %esi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	jmp	.L18
.L17:
	movl	god(%rip), %edx
	movl	-20(%rbp), %eax
	addl	%eax, %edx
	movl	-20(%rbp), %eax
	movl	%eax, %esi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
.L18:
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.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:
