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

```c
// 第6回 ドワンゴからの挑戦状 予選 A - Falling Asleep
// 2020.1.12 bal4u

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

char s[55][105];
char X[105];
int T[55];

int main()
{
	int i, t, tt, N;
	
	scanf("%d", &N);
	t = 0;
	for (i = 0; i < N; ++i) {
		scanf("%s%d", s[i], &tt);
		t += tt;
		T[i] = t;
	}
	scanf("%s", X);
	for (i = 0; i < N; ++i) if (strcmp(s[i], X) == 0) break;
	printf("%d\n", T[N-1] - T[i]);
	return 0;
}
```

Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC0(%rip), %rdi
	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
	leaq	T(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	testl	%eax, %eax
	jle	.L2
	leaq	s(%rip), %r13
	xorl	%ebx, %ebx
	xorl	%ebp, %ebp
	movq	%rsp, %r15
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movq	%r13, %rsi
	movq	%r15, %rdx
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addl	(%rsp), %ebp
	addq	$105, %r13
	movl	%ebp, (%r12,%rbx,4)
	addq	$1, %rbx
	cmpl	%ebx, 4(%rsp)
	jg	.L3
.L2:
	leaq	X(%rip), %r14
	leaq	.LC2(%rip), %rdi
	xorl	%eax, %eax
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r13d
	testl	%r13d, %r13d
	jle	.L7
	leaq	s(%rip), %rbp
	xorl	%ebx, %ebx
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L16:
	addl	$1, %ebx
	addq	$105, %rbp
	cmpl	%ebx, %r13d
	je	.L4
.L5:
	movq	%r14, %rsi
	movq	%rbp, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L16
.L4:
	subl	$1, %r13d
	movslq	%ebx, %rbx
	xorl	%eax, %eax
	movl	$1, %edi
	movslq	%r13d, %r13
	leaq	.LC3(%rip), %rsi
	movl	(%r12,%r13,4), %edx
	subl	(%r12,%rbx,4), %edx
	call	__printf_chk@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17
	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
.L7:
	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L4
.L17:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	T
	.bss
	.align 32
	.type	T, @object
	.size	T, 220
T:
	.zero	220
	.globl	X
	.align 32
	.type	X, @object
	.size	X, 105
X:
	.zero	105
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 5775
s:
	.zero	5775
	.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.
Optimized Assembly Code:

user
```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC0(%rip), %rdi
	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
	leaq	T(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	testl	%eax, %eax
	jle	.L2
	leaq	s(%rip), %r13
	xorl	%ebx, %ebx
	xorl	%ebp, %ebp
	movq	%rsp, %r15
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movq	%r13, %rsi
	movq	%r15, %rdx
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addl	(%rsp), %ebp
	addq	$105, %r13
	movl	%ebp, (%r12,%rbx,4)
	addq	$1, %rbx
	cmpl	%ebx, 4(%rsp)
	jg	.L3
.L2:
	leaq	X(%rip), %r14
	leaq	.LC2(%rip), %rdi
	xorl	%eax, %eax
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r13d
	testl	%r13d, %r13d
	jle	.L7
	leaq	s(%rip), %rbp
	xorl	%ebx, %ebx
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L16:
	addl	$1, %ebx
	addq	$105, %rbp
	cmpl	%ebx, %r13d
	je	.L4
.L5:
	movq	%r14, %rsi
	movq	%rbp, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L16
.L4:
	subl	$1, %r13d
	movslq	%ebx, %rbx
	xorl	%eax, %eax
	movl	$1, %edi
	movslq	%r13d, %r13
	leaq	.LC3(%rip), %rsi
	movl	(%r12,%r13,4), %edx
	subl	(%r12,%rbx,4), %edx
	call	__printf_chk@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17
	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
.L7:
	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L4
.L17:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	T
	.bss
	.align 32
	.type	T, @object
	.size	T, 220
T:
	.zero	220
	.globl	X
	.align 32
	.type	X, @object
	.size	X, 105
X:
	.zero	105
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 5775
s:
	.zero	5775
	.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
```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC0(%rip), %rdi
	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
	leaq	T(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	testl	%eax, %eax
	jle	.L2
	leaq	s(%rip), %r13
	xorl	%ebx, %ebx
	xorl	%ebp, %ebp
	movq	%rsp, %r15
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movq	%r13, %rsi
	movq	%r15, %rdx
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addl	(%rsp), %ebp
	addq	$105, %r13
	movl	%ebp, (%r12,%rbx,4)
	addq	$1, %rbx
	cmpl	%ebx, 4(%rsp)
	jg	.L3
.L2:
	leaq	X(%rip), %r14
	leaq	.LC2(%rip), %rdi
	xorl	%eax, %eax
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r13d
	testl	%r13d, %r13d
	jle	.L7
	leaq	s(%rip), %rbp
	xorl	%ebx, %ebx
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L16:
	addl	$1, %ebx
	addq	$105, %rbp
	cmpl	%ebx, %r13d
	je	.L4
.L5:
	movq	%r14, %rsi
	movq	%rbp, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L16
.L4:
	subl	$1, %r13d
	movslq	%ebx, %rbx
	xorl	%eax, %eax
	movl	$1, %edi
	movslq	%r13d, %r13
	leaq	.LC3(%rip), %rsi
	movl	(%r12,%r13,4), %edx
	subl	(%r12,%rbx,4), %edx
	call	__printf_chk@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17
	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
.L7:
	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L4
.L17:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	T
	.bss
	.align 32
	.type	T, @object
	.size	T, 220
T:
	.zero	220
	.globl	X
	.align 32
	.type	X, @object
	.size	X, 105
X:
	.zero	105
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 5775
s:
	.zero	5775
	.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:
```
```c
// 第6回 ドワンゴからの挑戦状 予選 A - Falling Asleep
// 2020.1.12 bal4u

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

char s[55][105];
char X[105];
int T[55];

int main()
{
	int i, t, tt, N;
	
	scanf("%d", &N);
	t = 0;
	for (i = 0; i < N; ++i) {
		scanf("%s%d", s[i], &tt);
		t += tt;
		T[i] = t;
	}
	scanf("%s", X);
	for (i = 0; i < N; ++i) if (strcmp(s[i], X) == 0) break;
	printf("%d\n", T[N-1] - T[i]);
	return 0;
}
```
Given the following C code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
// 第6回 ドワンゴからの挑戦状 予選 A - Falling Asleep
// 2020.1.12 bal4u

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

char s[55][105];
char X[105];
int T[55];

int main()
{
	int i, t, tt, N;
	
	scanf("%d", &N);
	t = 0;
	for (i = 0; i < N; ++i) {
		scanf("%s%d", s[i], &tt);
		t += tt;
		T[i] = t;
	}
	scanf("%s", X);
	for (i = 0; i < N; ++i) if (strcmp(s[i], X) == 0) break;
	printf("%d\n", T[N-1] - T[i]);
	return 0;
}
```

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.
Optimized Assembly Code:

15
ypnxn 279
kgjgwx 464
qquhuwq 327
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
wunfagppcoi 200
dhavrncwfw 720
jpcmigg 658
wrczqxycivdqn 639
mcmkkbnjfeod 992
zstythbkgkvqth 130
twflegsjz 467
dswxxrxuzzfhkp 989
szfwtzfpnscgue 958
pmuduhznoaqu
 1
abcde 0000
abcde
 15
ypnxn 279
kgjfwx 464
qquhuwq 327
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
wunfagppcoi 200
dhavrncwfw 720
jpcmigg 658
wrczqxycivdqn 639
mcmkkbnjfeod 992
zstythbkgkvqth 130
twflegsjz 809
dswxxrxuzzfhkp 989
szfwtzfpnscgue 958
pmuduhznoaqu
 15
ynpxn 307
jgfjwx 127
qquhuwq 319
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
iunfagppcow 200
dhavrncwfw 1135
ggimcpj 658
wrczqxycivdqn 639
mcmkkbnjfeod 992
zstythbkgkwqth 130
twflegsjz 809
dswzxrxuzxfhkp 989
szfwtzfpnscgue 958
pmuduhznoaqu
 3
dwango 2
sixth 5
prelims 4
dwango
 15
ypnxn 279
kgjgwx 464
qquhuwq 327
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
wunfagppcoi 200
dhavrncwfw 720
jpcmigg 658
wrczqxycivdqn 639
mcmkkbnjfeod 992
zstythbkgkvqth 130
twflegsjz 467
dswxxrxuzzfhkp 1344
szfwtzfpnscgue 958
pmuduhznoaqu
 15
ypnxn 279
kgjfwx 464
qquhuwq 327
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
wunfagppcoi 200
dhavrncwfw 720
jpcmigg 1050
wrczqxycivdqn 639
mcmkkbnjfeod 992
zstythbkgkvqth 130
twflegsjz 467
dswxxrxuzzfhkp 989
szfwtzfpnscgue 958
pmuduhznoaqu
 15
ynpxn 279
jgjfwx 127
qquhuwq 319
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
iunfagppcow 200
dhavrncwfw 720
ggimcpj 658
wrczqxycivdqn 19
mcmkkbnjfeod 992
zstythbkgkwqth 130
twflegsjz 809
dswzxrxuzxfhkp 989
szfwtzfpnscgue 958
pmuduhznoaqu
 15
ynpxn 279
jgfjwx 127
qquhuwq 319
rxing 549
pmuduhznoaqu 832
dagktgdarveusju 595
iunfagppcow 200
dhavrncwfw 720
ggimcpj 658
wrczqxycivdqn 639
mcmkkbnjfeod 327
zstythbkgkwqth 130
twflegsjz 809
dswzxrxuzxfhkp 989
szfwtzfpnscgue 958
pmuduhznoaqu
 3
dwango 2
sixth 5
prelims 7
dwango

6348
 0
 6690
 7105
 9
 6703
 6740
 6070
 6025
 12

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

```c
// 第6回 ドワンゴからの挑戦状 予選 A - Falling Asleep
// 2020.1.12 bal4u

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

char s[55][105];
char X[105];
int T[55];

int main()
{
	int i, t, tt, N;
	
	scanf("%d", &N);
	t = 0;
	for (i = 0; i < N; ++i) {
		scanf("%s%d", s[i], &tt);
		t += tt;
		T[i] = t;
	}
	scanf("%s", X);
	for (i = 0; i < N; ++i) if (strcmp(s[i], X) == 0) break;
	printf("%d\n", T[N-1] - T[i]);
	return 0;
}
```

Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC0(%rip), %rdi
	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
	leaq	T(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	testl	%eax, %eax
	jle	.L2
	leaq	s(%rip), %r13
	xorl	%ebx, %ebx
	xorl	%ebp, %ebp
	movq	%rsp, %r15
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movq	%r13, %rsi
	movq	%r15, %rdx
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addl	(%rsp), %ebp
	addq	$105, %r13
	movl	%ebp, (%r12,%rbx,4)
	addq	$1, %rbx
	cmpl	%ebx, 4(%rsp)
	jg	.L3
.L2:
	leaq	X(%rip), %r14
	leaq	.LC2(%rip), %rdi
	xorl	%eax, %eax
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r13d
	testl	%r13d, %r13d
	jle	.L7
	leaq	s(%rip), %rbp
	xorl	%ebx, %ebx
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L16:
	addl	$1, %ebx
	addq	$105, %rbp
	cmpl	%ebx, %r13d
	je	.L4
.L5:
	movq	%r14, %rsi
	movq	%rbp, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L16
.L4:
	subl	$1, %r13d
	movslq	%ebx, %rbx
	xorl	%eax, %eax
	movl	$1, %edi
	movslq	%r13d, %r13
	leaq	.LC3(%rip), %rsi
	movl	(%r12,%r13,4), %edx
	subl	(%r12,%rbx,4), %edx
	call	__printf_chk@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17
	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
.L7:
	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L4
.L17:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	T
	.bss
	.align 32
	.type	T, @object
	.size	T, 220
T:
	.zero	220
	.globl	X
	.align 32
	.type	X, @object
	.size	X, 105
X:
	.zero	105
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 5775
s:
	.zero	5775
	.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.
Optimized Assembly Code:

train
```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"%s%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB35:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC0(%rip), %rdi
	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
	leaq	T(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	leaq	4(%rsp), %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %eax
	testl	%eax, %eax
	jle	.L2
	leaq	s(%rip), %r13
	xorl	%ebx, %ebx
	xorl	%ebp, %ebp
	movq	%rsp, %r15
	leaq	.LC1(%rip), %r14
	.p2align 4,,10
	.p2align 3
.L3:
	movq	%r13, %rsi
	movq	%r15, %rdx
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	addl	(%rsp), %ebp
	addq	$105, %r13
	movl	%ebp, (%r12,%rbx,4)
	addq	$1, %rbx
	cmpl	%ebx, 4(%rsp)
	jg	.L3
.L2:
	leaq	X(%rip), %r14
	leaq	.LC2(%rip), %rdi
	xorl	%eax, %eax
	movq	%r14, %rsi
	call	__isoc99_scanf@PLT
	movl	4(%rsp), %r13d
	testl	%r13d, %r13d
	jle	.L7
	leaq	s(%rip), %rbp
	xorl	%ebx, %ebx
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L16:
	addl	$1, %ebx
	addq	$105, %rbp
	cmpl	%ebx, %r13d
	je	.L4
.L5:
	movq	%r14, %rsi
	movq	%rbp, %rdi
	call	strcmp@PLT
	testl	%eax, %eax
	jne	.L16
.L4:
	subl	$1, %r13d
	movslq	%ebx, %rbx
	xorl	%eax, %eax
	movl	$1, %edi
	movslq	%r13d, %r13
	leaq	.LC3(%rip), %rsi
	movl	(%r12,%r13,4), %edx
	subl	(%r12,%rbx,4), %edx
	call	__printf_chk@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L17
	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
.L7:
	.cfi_restore_state
	xorl	%ebx, %ebx
	jmp	.L4
.L17:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE35:
	.size	main, .-main
	.globl	T
	.bss
	.align 32
	.type	T, @object
	.size	T, 220
T:
	.zero	220
	.globl	X
	.align 32
	.type	X, @object
	.size	X, 105
X:
	.zero	105
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 5775
s:
	.zero	5775
	.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:
```