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

```c
/*  AUTHOR: AKASH JAIN
*   EMAIL:  akash19jain@gmail.com
*   ID:     akash19jain  
*   DATE:   03-02-2020 17:01:24
*/


// #include<algorithm>
// #include <bits/stdc++.h>
// using namespace std;
 
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
#include<ctype.h>
#define SC1(x)          scanf("%lld",&x)
#define SC2(x,y)        scanf("%lld%lld",&x,&y)
#define SC3(x,y,z)      scanf("%lld%lld%lld",&x,&y,&z)
#define SCS(x)          scanf("\n%s", x)
#define SCA(a,n)        for(long long i=0;i<n;i++)    scanf("%lld",&a[i]);
#define PF1(x)          printf("%lld\n",x)
#define PF2(x,y)        printf("%lld %lld\n",x,y)
#define PF3(x,y,z)      printf("%lld %lld %lld\n",x,y,z)
#define PFA(a,n)        for(long long i=0;i<n;i++)    printf("%lld ",a[i]); printf("\n");
#define PFN             printf("\n")
#define PFS(x)          printf("%s\n",x)
#define REP(i,n)        for(long long i=0;i<(n);++i)
#define FOR(i,a,b)      for(long long i=(a);i<=(b);++i)
#define FORD(i,a,b)     for(long long i=(a);i>=(b);--i)
#define WHILE(n)        while(n--)
#define MEM(a, b)       memset(a, (b), sizeof(a))
#define ITOC(c)         ((char)(((ll)'0')+c))
#define MID(s,e)        (s+(e-s)/2)
#define SZ(a)           strlen(a)          
#define PI              3.1415926535897932384626433832795
#define DEB(x)          printf("The value of \"%s\" is: %d\n",#x,x)
#define CASES           ll t;SC1(t);while(t--)
#define ABS(a)          ((a>0)?a:-(a))
#define SWAP(a,b)       ll z=a;a=b;b=z
#define SWAPC(a,b)      char z=a;a=b;b=z
#define FLSH            fflush(stdout)
typedef long long ll;
typedef unsigned long long ull;
const ll INF = 1<<29;
const ll MOD = 1000000007;
const ll FMOD = 998244353;
const ll MAX = 10000000005;
const ll MIN = -10000000005;
#define FILEIO(name) \  freopen(name".in", "r", stdin); \   freopen(name".out", "w", stdout);
int cmp(const void * a,const void * b);
long long maxv(long long a,long long b);
long long minv(long long a,long long b);
long long gcd(long long u,long long v);
long long digits(long long n);
bool ispoweroftwo(long long n);
bool isvowel(char x);
ll chartoint(char ch);
ll CEIL(ll x,ll y);
ll FLOOR(ll x,ll y);


int main()
{
    ll n,h;
    SC2(h,n);
    ll a[n],b[n],dp[h+1];
    REP(i,h+1)
    {
        dp[i]=MAX;
    }
    REP(i,n)
    {
        SC2(a[i],b[i]);
    }
    dp[0]=0;
    REP(i,n)
    {
        REP(j,h+1)
        {
            ll x=minv(j+a[i],h);
            //DEB(x);
            dp[x]=minv(dp[x],dp[j]+b[i]);
        }
    }
    PF1(dp[h]);
    return 0;
}
 
 
//qsort(arr,n,sizeof(arr[0]),cmp);
int cmp (const void * a, const void * b)
{
    if( *(ll*)a - *(ll*)b < 0 ) return -1;
    if( *(ll*)a - *(ll*)b > 0 ) return 1;
        return 0;
}
long long maxv(long long a,long long b)
{
    if(a>b) return a;
        return b;
}
long long minv(long long a,long long b)
{
    if(a<b) return a;
        return b;
}
long long gcd(long long u,long long v)
{
    if (v == 0) return u; 
       return gcd(v, u%v);
}
long long digits(long long n)    //to calculate no of digits in a number
{
    return floor(log10(n))+1;
}
bool ispoweroftwo(long long x)
{
    return x && (!(x&(x-1)));
}
bool isvowel(char x)
{
    return(x=='a' || x== 'e' ||x=='i' || x== 'o' || x=='u' );
}
ll chartoint(char ch)
{
    if(ch>='A' && ch<='Z') return(ch-'A');
    else if(ch>='0' && ch<='9') return (ch-'0');
    else if(ch>='a' && ch<='z') return (ch-'a');
    else return 0;
}
ll CEIL(ll x,ll y)
{
    if(x%y==0) return(x/y);
    else return(x/y +1);
}
 
ll FLOOR(ll x,ll y)
{
    if(x%y==0) return(x/y);
    else return(x/y -1);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	INF
	.section	.rodata
	.align 8
	.type	INF, @object
	.size	INF, 8
INF:
	.quad	536870912
	.globl	MOD
	.align 8
	.type	MOD, @object
	.size	MOD, 8
MOD:
	.quad	1000000007
	.globl	FMOD
	.align 8
	.type	FMOD, @object
	.size	FMOD, 8
FMOD:
	.quad	998244353
	.globl	MAX
	.align 8
	.type	MAX, @object
	.size	MAX, 8
MAX:
	.quad	10000000005
	.globl	MIN
	.align 8
	.type	MIN, @object
	.size	MIN, 8
MIN:
	.quad	-10000000005
.LC0:
	.string	"%lld%lld"
.LC1:
	.string	"%lld\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$184, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rax, %rbx
	leaq	-160(%rbp), %rax
	leaq	-152(%rbp), %rcx
	movq	%rax, %rdx
	movq	%rcx, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movq	-160(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -112(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -176(%rbp)
	movq	$0, -168(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -192(%rbp)
	movq	$0, -184(%rbp)
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L2:
	cmpq	%rdx, %rsp
	je	.L3
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L2
.L3:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L4
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L4:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -104(%rbp)
	movq	-160(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -96(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -208(%rbp)
	movq	$0, -200(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -224(%rbp)
	movq	$0, -216(%rbp)
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %edi
	movl	$0, %edx
	divq	%rdi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L5:
	cmpq	%rdx, %rsp
	je	.L6
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L5
.L6:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L7
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L7:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -88(%rbp)
	movq	-152(%rbp), %rax
	addq	$1, %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -80(%rbp)
	movq	%rax, %rdx
	movq	%rdx, %r14
	movl	$0, %r15d
	movq	%rax, %rdx
	movq	%rdx, %r12
	movl	$0, %r13d
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L8:
	cmpq	%rdx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L9:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L10
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L10:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -72(%rbp)
	movq	$0, -144(%rbp)
	jmp	.L11
.L12:
	movabsq	$10000000005, %rcx
	movq	-72(%rbp), %rax
	movq	-144(%rbp), %rdx
	movq	%rcx, (%rax,%rdx,8)
	addq	$1, -144(%rbp)
.L11:
	movq	-152(%rbp), %rax
	cmpq	%rax, -144(%rbp)
	jle	.L12
	movq	$0, -136(%rbp)
	jmp	.L13
.L14:
	movq	-136(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	-88(%rbp), %rax
	addq	%rax, %rdx
	movq	-136(%rbp), %rax
	leaq	0(,%rax,8), %rcx
	movq	-104(%rbp), %rax
	addq	%rcx, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addq	$1, -136(%rbp)
.L13:
	movq	-160(%rbp), %rax
	cmpq	%rax, -136(%rbp)
	jl	.L14
	movq	-72(%rbp), %rax
	movq	$0, (%rax)
	movq	$0, -128(%rbp)
	jmp	.L15
.L18:
	movq	$0, -120(%rbp)
	jmp	.L16
.L17:
	movq	-152(%rbp), %rax
	movq	-104(%rbp), %rdx
	movq	-128(%rbp), %rcx
	movq	(%rdx,%rcx,8), %rcx
	movq	-120(%rbp), %rdx
	addq	%rcx, %rdx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	call	minv
	movq	%rax, -64(%rbp)
	movq	-72(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	(%rax,%rdx,8), %rcx
	movq	-88(%rbp), %rax
	movq	-128(%rbp), %rdx
	movq	(%rax,%rdx,8), %rax
	leaq	(%rcx,%rax), %rdx
	movq	-72(%rbp), %rax
	movq	-64(%rbp), %rcx
	movq	(%rax,%rcx,8), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	minv
	movq	-72(%rbp), %rdx
	movq	-64(%rbp), %rcx
	movq	%rax, (%rdx,%rcx,8)
	addq	$1, -120(%rbp)
.L16:
	movq	-152(%rbp), %rax
	cmpq	%rax, -120(%rbp)
	jle	.L17
	addq	$1, -128(%rbp)
.L15:
	movq	-160(%rbp), %rax
	cmpq	%rax, -128(%rbp)
	jl	.L18
	movq	-152(%rbp), %rdx
	movq	-72(%rbp), %rax
	movq	(%rax,%rdx,8), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	movq	%rbx, %rsp
	movq	-56(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB7:
	.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
	movq	(%rax), %rdx
	movq	-16(%rbp), %rax
	movq	(%rax), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	testq	%rax, %rax
	jns	.L22
	movl	$-1, %eax
	jmp	.L23
.L22:
	movq	-8(%rbp), %rax
	movq	(%rax), %rdx
	movq	-16(%rbp), %rax
	movq	(%rax), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	testq	%rax, %rax
	jle	.L24
	movl	$1, %eax
	jmp	.L23
.L24:
	movl	$0, %eax
.L23:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	cmp, .-cmp
	.globl	maxv
	.type	maxv, @function
maxv:
.LFB8:
	.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
	cmpq	-16(%rbp), %rax
	jle	.L26
	movq	-8(%rbp), %rax
	jmp	.L27
.L26:
	movq	-16(%rbp), %rax
.L27:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	maxv, .-maxv
	.globl	minv
	.type	minv, @function
minv:
.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
	cmpq	-16(%rbp), %rax
	jge	.L29
	movq	-8(%rbp), %rax
	jmp	.L30
.L29:
	movq	-16(%rbp), %rax
.L30:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	minv, .-minv
	.globl	gcd
	.type	gcd, @function
gcd:
.LFB10:
	.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
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	cmpq	$0, -16(%rbp)
	jne	.L32
	movq	-8(%rbp), %rax
	jmp	.L33
.L32:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	movq	-16(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	gcd
.L33:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	gcd, .-gcd
	.globl	digits
	.type	digits, @function
digits:
.LFB11:
	.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
	movq	%rdi, -8(%rbp)
	pxor	%xmm2, %xmm2
	cvtsi2sdq	-8(%rbp), %xmm2
	movq	%xmm2, %rax
	movq	%rax, %xmm0
	call	log10@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	floor@PLT
	movsd	.LC2(%rip), %xmm1
	addsd	%xmm1, %xmm0
	cvttsd2siq	%xmm0, %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	digits, .-digits
	.globl	ispoweroftwo
	.type	ispoweroftwo, @function
ispoweroftwo:
.LFB12:
	.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)
	cmpq	$0, -8(%rbp)
	je	.L37
	movq	-8(%rbp), %rax
	subq	$1, %rax
	andq	-8(%rbp), %rax
	testq	%rax, %rax
	jne	.L37
	movl	$1, %eax
	jmp	.L38
.L37:
	movl	$0, %eax
.L38:
	andl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	ispoweroftwo, .-ispoweroftwo
	.globl	isvowel
	.type	isvowel, @function
isvowel:
.LFB13:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$97, -4(%rbp)
	je	.L41
	cmpb	$101, -4(%rbp)
	je	.L41
	cmpb	$105, -4(%rbp)
	je	.L41
	cmpb	$111, -4(%rbp)
	je	.L41
	cmpb	$117, -4(%rbp)
	jne	.L42
.L41:
	movl	$1, %eax
	jmp	.L43
.L42:
	movl	$0, %eax
.L43:
	andl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	isvowel, .-isvowel
	.globl	chartoint
	.type	chartoint, @function
chartoint:
.LFB14:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$64, -4(%rbp)
	jle	.L46
	cmpb	$90, -4(%rbp)
	jg	.L46
	movsbl	-4(%rbp), %eax
	subl	$65, %eax
	cltq
	jmp	.L47
.L46:
	cmpb	$47, -4(%rbp)
	jle	.L48
	cmpb	$57, -4(%rbp)
	jg	.L48
	movsbl	-4(%rbp), %eax
	subl	$48, %eax
	cltq
	jmp	.L47
.L48:
	cmpb	$96, -4(%rbp)
	jle	.L49
	cmpb	$122, -4(%rbp)
	jg	.L49
	movsbl	-4(%rbp), %eax
	subl	$97, %eax
	cltq
	jmp	.L47
.L49:
	movl	$0, %eax
.L47:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	chartoint, .-chartoint
	.globl	CEIL
	.type	CEIL, @function
CEIL:
.LFB15:
	.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
	cqto
	idivq	-16(%rbp)
	movq	%rdx, %rax
	testq	%rax, %rax
	jne	.L51
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	jmp	.L52
.L51:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	addq	$1, %rax
.L52:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	CEIL, .-CEIL
	.globl	FLOOR
	.type	FLOOR, @function
FLOOR:
.LFB16:
	.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
	cqto
	idivq	-16(%rbp)
	movq	%rdx, %rax
	testq	%rax, %rax
	jne	.L54
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	jmp	.L55
.L54:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	subq	$1, %rax
.L55:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	FLOOR, .-FLOOR
	.section	.rodata
	.align 8
.LC2:
	.long	0
	.long	1072693248
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%lld%lld"
.LC2:
	.string	"%lld\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB53:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	leaq	.LC0(%rip), %r14
	leaq	-72(%rbp), %rdx
	pushq	%r13
	leaq	-64(%rbp), %rsi
	movq	%r14, %rdi
	pushq	%r12
	pushq	%rbx
	subq	$72, %rsp
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movq	-72(%rbp), %rdi
	movq	%rsp, %rcx
	leaq	15(,%rdi,8), %rax
	movq	%rax, %rsi
	movq	%rax, %rdx
	andq	$-4096, %rsi
	andq	$-16, %rdx
	subq	%rsi, %rcx
	cmpq	%rcx, %rsp
	je	.L3
.L46:
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	cmpq	%rcx, %rsp
	jne	.L46
.L3:
	andl	$4095, %edx
	subq	%rdx, %rsp
	testq	%rdx, %rdx
	jne	.L47
.L4:
	movq	%rsp, -88(%rbp)
	movq	%rax, %rdx
	movq	%rsp, %rcx
	andq	$-4096, %rax
	andq	$-16, %rdx
	subq	%rax, %rcx
.L5:
	cmpq	%rcx, %rsp
	je	.L6
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L5
.L47:
	orq	$0, -8(%rsp,%rdx)
	jmp	.L4
.L6:
	andl	$4095, %edx
	subq	%rdx, %rsp
	testq	%rdx, %rdx
	jne	.L48
.L7:
	movq	-64(%rbp), %rsi
	movq	%rsp, -96(%rbp)
	movq	%rsp, %rcx
	leaq	23(,%rsi,8), %rdx
	leaq	1(%rsi), %r10
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L8:
	cmpq	%rcx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L48:
	orq	$0, -8(%rsp,%rdx)
	jmp	.L7
.L9:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L10
	orq	$0, -8(%rsp,%rax)
.L10:
	leaq	7(%rsp), %r13
	movq	%r13, %rax
	andq	$-8, %r13
	shrq	$3, %rax
	movq	%rax, -104(%rbp)
	testq	%rsi, %rsi
	js	.L17
	je	.L25
	movq	%r10, %rcx
	movdqa	.LC1(%rip), %xmm0
	xorl	%eax, %eax
	shrq	%rcx
	.p2align 4,,10
	.p2align 3
.L15:
	movq	%rax, %rdx
	addq	$1, %rax
	salq	$4, %rdx
	movups	%xmm0, 0(%r13,%rdx)
	cmpq	%rcx, %rax
	jne	.L15
	movq	%r10, %rax
	andq	$-2, %rax
	andl	$1, %r10d
	je	.L17
.L14:
	movabsq	$10000000005, %rbx
	movq	%rbx, 0(%r13,%rax,8)
.L17:
	movq	-88(%rbp), %rbx
	movq	-96(%rbp), %r12
	xorl	%r15d, %r15d
	testq	%rdi, %rdi
	jle	.L49
	.p2align 4,,10
	.p2align 3
.L19:
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movq	-72(%rbp), %r9
	addq	$1, %r15
	addq	$8, %rbx
	addq	$8, %r12
	cmpq	%r15, %r9
	jg	.L19
	movq	-104(%rbp), %rax
	movq	-64(%rbp), %rsi
	movq	$0, 0(,%rax,8)
	testq	%r9, %r9
	jle	.L20
	xorl	%r14d, %r14d
	leaq	1(%rsi), %r10
	testq	%rsi, %rsi
	js	.L20
	.p2align 4,,10
	.p2align 3
.L21:
	movq	-96(%rbp), %rax
	movq	(%rax,%r14,8), %r11
	movq	-88(%rbp), %rax
	movq	(%rax,%r14,8), %rax
	movq	%rax, %rdx
	leaq	(%r10,%rax), %r8
	negq	%rdx
	leaq	0(%r13,%rdx,8), %rdi
	.p2align 4,,10
	.p2align 3
.L23:
	cmpq	%rsi, %rax
	movq	%rsi, %rcx
	movq	(%rdi,%rax,8), %rdx
	cmovle	%rax, %rcx
	addq	%r11, %rdx
	movq	0(%r13,%rcx,8), %r15
	cmpq	%r15, %rdx
	cmovg	%r15, %rdx
	addq	$1, %rax
	movq	%rdx, 0(%r13,%rcx,8)
	cmpq	%rax, %r8
	jne	.L23
	addq	$1, %r14
	cmpq	%r14, %r9
	jne	.L21
.L20:
	movq	0(%r13,%rsi,8), %rdx
	xorl	%eax, %eax
	leaq	.LC2(%rip), %rsi
	movl	$1, %edi
	call	__printf_chk@PLT
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L50
	leaq	-40(%rbp), %rsp
	xorl	%eax, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
.L49:
	.cfi_restore_state
	movq	-104(%rbp), %rax
	movq	$0, 0(,%rax,8)
	jmp	.L20
.L25:
	xorl	%eax, %eax
	jmp	.L14
.L50:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE53:
	.size	main, .-main
	.text
	.p2align 4
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB54:
	.cfi_startproc
	endbr64
	movq	(%rsi), %rdx
	movl	$-1, %eax
	cmpq	%rdx, (%rdi)
	js	.L51
	setne	%al
	movzbl	%al, %eax
.L51:
	ret
	.cfi_endproc
.LFE54:
	.size	cmp, .-cmp
	.p2align 4
	.globl	maxv
	.type	maxv, @function
maxv:
.LFB55:
	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	movq	%rsi, %rax
	cmovge	%rdi, %rax
	ret
	.cfi_endproc
.LFE55:
	.size	maxv, .-maxv
	.p2align 4
	.globl	minv
	.type	minv, @function
minv:
.LFB56:
	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	movq	%rsi, %rax
	cmovle	%rdi, %rax
	ret
	.cfi_endproc
.LFE56:
	.size	minv, .-minv
	.p2align 4
	.globl	gcd
	.type	gcd, @function
gcd:
.LFB57:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %r8
	testq	%rsi, %rsi
	jne	.L57
	jmp	.L64
	.p2align 4,,10
	.p2align 3
.L65:
	movq	%rdx, %r8
.L57:
	cqto
	idivq	%r8
	movq	%r8, %rax
	testq	%rdx, %rdx
	jne	.L65
	movq	%r8, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L64:
	movq	%rdi, %r8
	movq	%r8, %rax
	ret
	.cfi_endproc
.LFE57:
	.size	gcd, .-gcd
	.p2align 4
	.globl	digits
	.type	digits, @function
digits:
.LFB58:
	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	cvtsi2sdq	%rdi, %xmm0
	call	log10@PLT
	movsd	.LC4(%rip), %xmm2
	movsd	.LC3(%rip), %xmm3
	movapd	%xmm0, %xmm1
	andpd	%xmm2, %xmm1
	ucomisd	%xmm1, %xmm3
	movsd	.LC5(%rip), %xmm3
	jbe	.L67
	cvttsd2siq	%xmm0, %rax
	pxor	%xmm1, %xmm1
	andnpd	%xmm0, %xmm2
	cvtsi2sdq	%rax, %xmm1
	movapd	%xmm1, %xmm4
	cmpnlesd	%xmm0, %xmm4
	andpd	%xmm3, %xmm4
	subsd	%xmm4, %xmm1
	orpd	%xmm2, %xmm1
	movapd	%xmm1, %xmm0
.L67:
	addsd	%xmm3, %xmm0
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	cvttsd2siq	%xmm0, %rax
	ret
	.cfi_endproc
.LFE58:
	.size	digits, .-digits
	.p2align 4
	.globl	ispoweroftwo
	.type	ispoweroftwo, @function
ispoweroftwo:
.LFB59:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L70
	leaq	-1(%rdi), %rax
	testq	%rdi, %rax
	sete	%al
.L70:
	ret
	.cfi_endproc
.LFE59:
	.size	ispoweroftwo, .-ispoweroftwo
	.p2align 4
	.globl	isvowel
	.type	isvowel, @function
isvowel:
.LFB60:
	.cfi_startproc
	endbr64
	subl	$97, %edi
	xorl	%eax, %eax
	cmpb	$20, %dil
	ja	.L74
	movzbl	%dil, %edi
	leaq	CSWTCH.35(%rip), %rax
	movl	(%rax,%rdi,4), %eax
	andl	$1, %eax
.L74:
	ret
	.cfi_endproc
.LFE60:
	.size	isvowel, .-isvowel
	.p2align 4
	.globl	chartoint
	.type	chartoint, @function
chartoint:
.LFB61:
	.cfi_startproc
	endbr64
	leal	-65(%rdi), %eax
	cmpb	$25, %al
	jbe	.L82
	leal	-48(%rdi), %eax
	cmpb	$9, %al
	jbe	.L82
	subl	$97, %edi
	xorl	%edx, %edx
	movsbq	%dil, %rax
	cmpb	$26, %dil
	cmovnb	%rdx, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L82:
	movsbq	%al, %rax
	ret
	.cfi_endproc
.LFE61:
	.size	chartoint, .-chartoint
	.p2align 4
	.globl	CEIL
	.type	CEIL, @function
CEIL:
.LFB62:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	cqto
	idivq	%rsi
	cmpq	$1, %rdx
	sbbq	$-1, %rax
	ret
	.cfi_endproc
.LFE62:
	.size	CEIL, .-CEIL
	.p2align 4
	.globl	FLOOR
	.type	FLOOR, @function
FLOOR:
.LFB63:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	cqto
	idivq	%rsi
	cmpq	$1, %rdx
	adcq	$-1, %rax
	ret
	.cfi_endproc
.LFE63:
	.size	FLOOR, .-FLOOR
	.section	.rodata
	.align 32
	.type	CSWTCH.35, @object
	.size	CSWTCH.35, 84
CSWTCH.35:
	.long	1
	.long	0
	.long	0
	.long	0
	.long	1
	.long	0
	.long	0
	.long	0
	.long	1
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1
	.globl	MIN
	.align 8
	.type	MIN, @object
	.size	MIN, 8
MIN:
	.quad	-10000000005
	.globl	MAX
	.align 8
	.type	MAX, @object
	.size	MAX, 8
MAX:
	.quad	10000000005
	.globl	FMOD
	.align 8
	.type	FMOD, @object
	.size	FMOD, 8
FMOD:
	.quad	998244353
	.globl	MOD
	.align 8
	.type	MOD, @object
	.size	MOD, 8
MOD:
	.quad	1000000007
	.globl	INF
	.align 8
	.type	INF, @object
	.size	INF, 8
INF:
	.quad	536870912
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.quad	10000000005
	.quad	10000000005
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC3:
	.long	0
	.long	1127219200
	.section	.rodata.cst16
	.align 16
.LC4:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.section	.rodata.cst8
	.align 8
.LC5:
	.long	0
	.long	1072693248
	.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
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%lld%lld"
.LC2:
	.string	"%lld\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB53:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	leaq	.LC0(%rip), %r14
	leaq	-72(%rbp), %rdx
	pushq	%r13
	leaq	-64(%rbp), %rsi
	movq	%r14, %rdi
	pushq	%r12
	pushq	%rbx
	subq	$72, %rsp
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movq	-72(%rbp), %rdi
	movq	%rsp, %rcx
	leaq	15(,%rdi,8), %rax
	movq	%rax, %rsi
	movq	%rax, %rdx
	andq	$-4096, %rsi
	andq	$-16, %rdx
	subq	%rsi, %rcx
	cmpq	%rcx, %rsp
	je	.L3
.L46:
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	cmpq	%rcx, %rsp
	jne	.L46
.L3:
	andl	$4095, %edx
	subq	%rdx, %rsp
	testq	%rdx, %rdx
	jne	.L47
.L4:
	movq	%rsp, -88(%rbp)
	movq	%rax, %rdx
	movq	%rsp, %rcx
	andq	$-4096, %rax
	andq	$-16, %rdx
	subq	%rax, %rcx
.L5:
	cmpq	%rcx, %rsp
	je	.L6
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L5
.L47:
	orq	$0, -8(%rsp,%rdx)
	jmp	.L4
.L6:
	andl	$4095, %edx
	subq	%rdx, %rsp
	testq	%rdx, %rdx
	jne	.L48
.L7:
	movq	-64(%rbp), %rsi
	movq	%rsp, -96(%rbp)
	movq	%rsp, %rcx
	leaq	23(,%rsi,8), %rdx
	leaq	1(%rsi), %r10
	movq	%rdx, %rax
	andq	$-4096, %rdx
	andq	$-16, %rax
	subq	%rdx, %rcx
.L8:
	cmpq	%rcx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L48:
	orq	$0, -8(%rsp,%rdx)
	jmp	.L7
.L9:
	andl	$4095, %eax
	subq	%rax, %rsp
	testq	%rax, %rax
	je	.L10
	orq	$0, -8(%rsp,%rax)
.L10:
	leaq	7(%rsp), %r13
	movq	%r13, %rax
	andq	$-8, %r13
	shrq	$3, %rax
	movq	%rax, -104(%rbp)
	testq	%rsi, %rsi
	js	.L17
	je	.L25
	movq	%r10, %rcx
	movdqa	.LC1(%rip), %xmm0
	xorl	%eax, %eax
	shrq	%rcx
	.p2align 4,,10
	.p2align 3
.L15:
	movq	%rax, %rdx
	addq	$1, %rax
	salq	$4, %rdx
	movups	%xmm0, 0(%r13,%rdx)
	cmpq	%rcx, %rax
	jne	.L15
	movq	%r10, %rax
	andq	$-2, %rax
	andl	$1, %r10d
	je	.L17
.L14:
	movabsq	$10000000005, %rbx
	movq	%rbx, 0(%r13,%rax,8)
.L17:
	movq	-88(%rbp), %rbx
	movq	-96(%rbp), %r12
	xorl	%r15d, %r15d
	testq	%rdi, %rdi
	jle	.L49
	.p2align 4,,10
	.p2align 3
.L19:
	movq	%r12, %rdx
	movq	%rbx, %rsi
	movq	%r14, %rdi
	xorl	%eax, %eax
	call	__isoc99_scanf@PLT
	movq	-72(%rbp), %r9
	addq	$1, %r15
	addq	$8, %rbx
	addq	$8, %r12
	cmpq	%r15, %r9
	jg	.L19
	movq	-104(%rbp), %rax
	movq	-64(%rbp), %rsi
	movq	$0, 0(,%rax,8)
	testq	%r9, %r9
	jle	.L20
	xorl	%r14d, %r14d
	leaq	1(%rsi), %r10
	testq	%rsi, %rsi
	js	.L20
	.p2align 4,,10
	.p2align 3
.L21:
	movq	-96(%rbp), %rax
	movq	(%rax,%r14,8), %r11
	movq	-88(%rbp), %rax
	movq	(%rax,%r14,8), %rax
	movq	%rax, %rdx
	leaq	(%r10,%rax), %r8
	negq	%rdx
	leaq	0(%r13,%rdx,8), %rdi
	.p2align 4,,10
	.p2align 3
.L23:
	cmpq	%rsi, %rax
	movq	%rsi, %rcx
	movq	(%rdi,%rax,8), %rdx
	cmovle	%rax, %rcx
	addq	%r11, %rdx
	movq	0(%r13,%rcx,8), %r15
	cmpq	%r15, %rdx
	cmovg	%r15, %rdx
	addq	$1, %rax
	movq	%rdx, 0(%r13,%rcx,8)
	cmpq	%rax, %r8
	jne	.L23
	addq	$1, %r14
	cmpq	%r14, %r9
	jne	.L21
.L20:
	movq	0(%r13,%rsi,8), %rdx
	xorl	%eax, %eax
	leaq	.LC2(%rip), %rsi
	movl	$1, %edi
	call	__printf_chk@PLT
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L50
	leaq	-40(%rbp), %rsp
	xorl	%eax, %eax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_remember_state
	.cfi_def_cfa 7, 8
	ret
.L49:
	.cfi_restore_state
	movq	-104(%rbp), %rax
	movq	$0, 0(,%rax,8)
	jmp	.L20
.L25:
	xorl	%eax, %eax
	jmp	.L14
.L50:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE53:
	.size	main, .-main
	.text
	.p2align 4
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB54:
	.cfi_startproc
	endbr64
	movq	(%rsi), %rdx
	movl	$-1, %eax
	cmpq	%rdx, (%rdi)
	js	.L51
	setne	%al
	movzbl	%al, %eax
.L51:
	ret
	.cfi_endproc
.LFE54:
	.size	cmp, .-cmp
	.p2align 4
	.globl	maxv
	.type	maxv, @function
maxv:
.LFB55:
	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	movq	%rsi, %rax
	cmovge	%rdi, %rax
	ret
	.cfi_endproc
.LFE55:
	.size	maxv, .-maxv
	.p2align 4
	.globl	minv
	.type	minv, @function
minv:
.LFB56:
	.cfi_startproc
	endbr64
	cmpq	%rsi, %rdi
	movq	%rsi, %rax
	cmovle	%rdi, %rax
	ret
	.cfi_endproc
.LFE56:
	.size	minv, .-minv
	.p2align 4
	.globl	gcd
	.type	gcd, @function
gcd:
.LFB57:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rsi, %r8
	testq	%rsi, %rsi
	jne	.L57
	jmp	.L64
	.p2align 4,,10
	.p2align 3
.L65:
	movq	%rdx, %r8
.L57:
	cqto
	idivq	%r8
	movq	%r8, %rax
	testq	%rdx, %rdx
	jne	.L65
	movq	%r8, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L64:
	movq	%rdi, %r8
	movq	%r8, %rax
	ret
	.cfi_endproc
.LFE57:
	.size	gcd, .-gcd
	.p2align 4
	.globl	digits
	.type	digits, @function
digits:
.LFB58:
	.cfi_startproc
	endbr64
	pxor	%xmm0, %xmm0
	subq	$8, %rsp
	.cfi_def_cfa_offset 16
	cvtsi2sdq	%rdi, %xmm0
	call	log10@PLT
	movsd	.LC4(%rip), %xmm2
	movsd	.LC3(%rip), %xmm3
	movapd	%xmm0, %xmm1
	andpd	%xmm2, %xmm1
	ucomisd	%xmm1, %xmm3
	movsd	.LC5(%rip), %xmm3
	jbe	.L67
	cvttsd2siq	%xmm0, %rax
	pxor	%xmm1, %xmm1
	andnpd	%xmm0, %xmm2
	cvtsi2sdq	%rax, %xmm1
	movapd	%xmm1, %xmm4
	cmpnlesd	%xmm0, %xmm4
	andpd	%xmm3, %xmm4
	subsd	%xmm4, %xmm1
	orpd	%xmm2, %xmm1
	movapd	%xmm1, %xmm0
.L67:
	addsd	%xmm3, %xmm0
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	cvttsd2siq	%xmm0, %rax
	ret
	.cfi_endproc
.LFE58:
	.size	digits, .-digits
	.p2align 4
	.globl	ispoweroftwo
	.type	ispoweroftwo, @function
ispoweroftwo:
.LFB59:
	.cfi_startproc
	endbr64
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L70
	leaq	-1(%rdi), %rax
	testq	%rdi, %rax
	sete	%al
.L70:
	ret
	.cfi_endproc
.LFE59:
	.size	ispoweroftwo, .-ispoweroftwo
	.p2align 4
	.globl	isvowel
	.type	isvowel, @function
isvowel:
.LFB60:
	.cfi_startproc
	endbr64
	subl	$97, %edi
	xorl	%eax, %eax
	cmpb	$20, %dil
	ja	.L74
	movzbl	%dil, %edi
	leaq	CSWTCH.35(%rip), %rax
	movl	(%rax,%rdi,4), %eax
	andl	$1, %eax
.L74:
	ret
	.cfi_endproc
.LFE60:
	.size	isvowel, .-isvowel
	.p2align 4
	.globl	chartoint
	.type	chartoint, @function
chartoint:
.LFB61:
	.cfi_startproc
	endbr64
	leal	-65(%rdi), %eax
	cmpb	$25, %al
	jbe	.L82
	leal	-48(%rdi), %eax
	cmpb	$9, %al
	jbe	.L82
	subl	$97, %edi
	xorl	%edx, %edx
	movsbq	%dil, %rax
	cmpb	$26, %dil
	cmovnb	%rdx, %rax
	ret
	.p2align 4,,10
	.p2align 3
.L82:
	movsbq	%al, %rax
	ret
	.cfi_endproc
.LFE61:
	.size	chartoint, .-chartoint
	.p2align 4
	.globl	CEIL
	.type	CEIL, @function
CEIL:
.LFB62:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	cqto
	idivq	%rsi
	cmpq	$1, %rdx
	sbbq	$-1, %rax
	ret
	.cfi_endproc
.LFE62:
	.size	CEIL, .-CEIL
	.p2align 4
	.globl	FLOOR
	.type	FLOOR, @function
FLOOR:
.LFB63:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	cqto
	idivq	%rsi
	cmpq	$1, %rdx
	adcq	$-1, %rax
	ret
	.cfi_endproc
.LFE63:
	.size	FLOOR, .-FLOOR
	.section	.rodata
	.align 32
	.type	CSWTCH.35, @object
	.size	CSWTCH.35, 84
CSWTCH.35:
	.long	1
	.long	0
	.long	0
	.long	0
	.long	1
	.long	0
	.long	0
	.long	0
	.long	1
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1
	.globl	MIN
	.align 8
	.type	MIN, @object
	.size	MIN, 8
MIN:
	.quad	-10000000005
	.globl	MAX
	.align 8
	.type	MAX, @object
	.size	MAX, 8
MAX:
	.quad	10000000005
	.globl	FMOD
	.align 8
	.type	FMOD, @object
	.size	FMOD, 8
FMOD:
	.quad	998244353
	.globl	MOD
	.align 8
	.type	MOD, @object
	.size	MOD, 8
MOD:
	.quad	1000000007
	.globl	INF
	.align 8
	.type	INF, @object
	.size	INF, 8
INF:
	.quad	536870912
	.section	.rodata.cst16,"aM",@progbits,16
	.align 16
.LC1:
	.quad	10000000005
	.quad	10000000005
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC3:
	.long	0
	.long	1127219200
	.section	.rodata.cst16
	.align 16
.LC4:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.section	.rodata.cst8
	.align 8
.LC5:
	.long	0
	.long	1072693248
	.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:

/*  AUTHOR: AKASH JAIN
*   EMAIL:  akash19jain@gmail.com
*   ID:     akash19jain  
*   DATE:   03-02-2020 17:01:24
*/


// #include<algorithm>
// #include <bits/stdc++.h>
// using namespace std;
 
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
#include<ctype.h>
#define SC1(x)          scanf("%lld",&x)
#define SC2(x,y)        scanf("%lld%lld",&x,&y)
#define SC3(x,y,z)      scanf("%lld%lld%lld",&x,&y,&z)
#define SCS(x)          scanf("\n%s", x)
#define SCA(a,n)        for(long long i=0;i<n;i++)    scanf("%lld",&a[i]);
#define PF1(x)          printf("%lld\n",x)
#define PF2(x,y)        printf("%lld %lld\n",x,y)
#define PF3(x,y,z)      printf("%lld %lld %lld\n",x,y,z)
#define PFA(a,n)        for(long long i=0;i<n;i++)    printf("%lld ",a[i]); printf("\n");
#define PFN             printf("\n")
#define PFS(x)          printf("%s\n",x)
#define REP(i,n)        for(long long i=0;i<(n);++i)
#define FOR(i,a,b)      for(long long i=(a);i<=(b);++i)
#define FORD(i,a,b)     for(long long i=(a);i>=(b);--i)
#define WHILE(n)        while(n--)
#define MEM(a, b)       memset(a, (b), sizeof(a))
#define ITOC(c)         ((char)(((ll)'0')+c))
#define MID(s,e)        (s+(e-s)/2)
#define SZ(a)           strlen(a)          
#define PI              3.1415926535897932384626433832795
#define DEB(x)          printf("The value of \"%s\" is: %d\n",#x,x)
#define CASES           ll t;SC1(t);while(t--)
#define ABS(a)          ((a>0)?a:-(a))
#define SWAP(a,b)       ll z=a;a=b;b=z
#define SWAPC(a,b)      char z=a;a=b;b=z
#define FLSH            fflush(stdout)
typedef long long ll;
typedef unsigned long long ull;
const ll INF = 1<<29;
const ll MOD = 1000000007;
const ll FMOD = 998244353;
const ll MAX = 10000000005;
const ll MIN = -10000000005;
#define FILEIO(name) \  freopen(name".in", "r", stdin); \   freopen(name".out", "w", stdout);
int cmp(const void * a,const void * b);
long long maxv(long long a,long long b);
long long minv(long long a,long long b);
long long gcd(long long u,long long v);
long long digits(long long n);
bool ispoweroftwo(long long n);
bool isvowel(char x);
ll chartoint(char ch);
ll CEIL(ll x,ll y);
ll FLOOR(ll x,ll y);


int main()
{
    ll n,h;
    SC2(h,n);
    ll a[n],b[n],dp[h+1];
    REP(i,h+1)
    {
        dp[i]=MAX;
    }
    REP(i,n)
    {
        SC2(a[i],b[i]);
    }
    dp[0]=0;
    REP(i,n)
    {
        REP(j,h+1)
        {
            ll x=minv(j+a[i],h);
            //DEB(x);
            dp[x]=minv(dp[x],dp[j]+b[i]);
        }
    }
    PF1(dp[h]);
    return 0;
}
 
 
//qsort(arr,n,sizeof(arr[0]),cmp);
int cmp (const void * a, const void * b)
{
    if( *(ll*)a - *(ll*)b < 0 ) return -1;
    if( *(ll*)a - *(ll*)b > 0 ) return 1;
        return 0;
}
long long maxv(long long a,long long b)
{
    if(a>b) return a;
        return b;
}
long long minv(long long a,long long b)
{
    if(a<b) return a;
        return b;
}
long long gcd(long long u,long long v)
{
    if (v == 0) return u; 
       return gcd(v, u%v);
}
long long digits(long long n)    //to calculate no of digits in a number
{
    return floor(log10(n))+1;
}
bool ispoweroftwo(long long x)
{
    return x && (!(x&(x-1)));
}
bool isvowel(char x)
{
    return(x=='a' || x== 'e' ||x=='i' || x== 'o' || x=='u' );
}
ll chartoint(char ch)
{
    if(ch>='A' && ch<='Z') return(ch-'A');
    else if(ch>='0' && ch<='9') return (ch-'0');
    else if(ch>='a' && ch<='z') return (ch-'a');
    else return 0;
}
ll CEIL(ll x,ll y)
{
    if(x%y==0) return(x/y);
    else return(x/y +1);
}
 
ll FLOOR(ll x,ll y)
{
    if(x%y==0) return(x/y);
    else return(x/y -1);
}
9999 10
540 7550
691 13640
700 9790
510 7150
415 5818
551 7712
587 8227
619 8671
588 8228
176 2461
 100 6
1 1
2 3
3 9
4 27
5 81
5 243
 110 6
1 1
2 3
3 9
4 27
5 81
5 243
 9999 10
540 7550
691 20670
700 9790
863 7150
415 5818
551 7712
587 8227
619 8671
588 8228
176 2461
 9999 10
540 7550
691 20670
700 9790
863 7150
415 1114
551 7712
587 8227
941 8671
588 10398
176 2461
 9999 5
540 4853
1222 7523
1778 16913
231 7150
415 769
118 7712
1118 8227
908 8671
94 4378
37 2120
 9999 5
289 4853
1222 12181
1778 16913
231 7150
415 1085
118 7712
1118 8227
1028 8975
94 5576
37 2120
 18187 7
197 2752
1222 10579
1778 16891
231 7150
415 1085
118 7083
813 10801
1028 8975
94 737
72 2120
 18187 7
228 2752
1939 10579
1778 16891
206 7150
415 1085
118 7083
560 878
3260 8600
12 1223
72 2120
 18187 7
379 2752
979 10579
1778 10271
187 7150
415 2513
130 13207
731 878
28 8600
6 2361
72 2120

139815
 100
 110
 85800
 27850
 19225
 27125
 47740
 28974
 21950

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

```c
/*  AUTHOR: AKASH JAIN
*   EMAIL:  akash19jain@gmail.com
*   ID:     akash19jain  
*   DATE:   03-02-2020 17:01:24
*/


// #include<algorithm>
// #include <bits/stdc++.h>
// using namespace std;
 
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
#include<ctype.h>
#define SC1(x)          scanf("%lld",&x)
#define SC2(x,y)        scanf("%lld%lld",&x,&y)
#define SC3(x,y,z)      scanf("%lld%lld%lld",&x,&y,&z)
#define SCS(x)          scanf("\n%s", x)
#define SCA(a,n)        for(long long i=0;i<n;i++)    scanf("%lld",&a[i]);
#define PF1(x)          printf("%lld\n",x)
#define PF2(x,y)        printf("%lld %lld\n",x,y)
#define PF3(x,y,z)      printf("%lld %lld %lld\n",x,y,z)
#define PFA(a,n)        for(long long i=0;i<n;i++)    printf("%lld ",a[i]); printf("\n");
#define PFN             printf("\n")
#define PFS(x)          printf("%s\n",x)
#define REP(i,n)        for(long long i=0;i<(n);++i)
#define FOR(i,a,b)      for(long long i=(a);i<=(b);++i)
#define FORD(i,a,b)     for(long long i=(a);i>=(b);--i)
#define WHILE(n)        while(n--)
#define MEM(a, b)       memset(a, (b), sizeof(a))
#define ITOC(c)         ((char)(((ll)'0')+c))
#define MID(s,e)        (s+(e-s)/2)
#define SZ(a)           strlen(a)          
#define PI              3.1415926535897932384626433832795
#define DEB(x)          printf("The value of \"%s\" is: %d\n",#x,x)
#define CASES           ll t;SC1(t);while(t--)
#define ABS(a)          ((a>0)?a:-(a))
#define SWAP(a,b)       ll z=a;a=b;b=z
#define SWAPC(a,b)      char z=a;a=b;b=z
#define FLSH            fflush(stdout)
typedef long long ll;
typedef unsigned long long ull;
const ll INF = 1<<29;
const ll MOD = 1000000007;
const ll FMOD = 998244353;
const ll MAX = 10000000005;
const ll MIN = -10000000005;
#define FILEIO(name) \  freopen(name".in", "r", stdin); \   freopen(name".out", "w", stdout);
int cmp(const void * a,const void * b);
long long maxv(long long a,long long b);
long long minv(long long a,long long b);
long long gcd(long long u,long long v);
long long digits(long long n);
bool ispoweroftwo(long long n);
bool isvowel(char x);
ll chartoint(char ch);
ll CEIL(ll x,ll y);
ll FLOOR(ll x,ll y);


int main()
{
    ll n,h;
    SC2(h,n);
    ll a[n],b[n],dp[h+1];
    REP(i,h+1)
    {
        dp[i]=MAX;
    }
    REP(i,n)
    {
        SC2(a[i],b[i]);
    }
    dp[0]=0;
    REP(i,n)
    {
        REP(j,h+1)
        {
            ll x=minv(j+a[i],h);
            //DEB(x);
            dp[x]=minv(dp[x],dp[j]+b[i]);
        }
    }
    PF1(dp[h]);
    return 0;
}
 
 
//qsort(arr,n,sizeof(arr[0]),cmp);
int cmp (const void * a, const void * b)
{
    if( *(ll*)a - *(ll*)b < 0 ) return -1;
    if( *(ll*)a - *(ll*)b > 0 ) return 1;
        return 0;
}
long long maxv(long long a,long long b)
{
    if(a>b) return a;
        return b;
}
long long minv(long long a,long long b)
{
    if(a<b) return a;
        return b;
}
long long gcd(long long u,long long v)
{
    if (v == 0) return u; 
       return gcd(v, u%v);
}
long long digits(long long n)    //to calculate no of digits in a number
{
    return floor(log10(n))+1;
}
bool ispoweroftwo(long long x)
{
    return x && (!(x&(x-1)));
}
bool isvowel(char x)
{
    return(x=='a' || x== 'e' ||x=='i' || x== 'o' || x=='u' );
}
ll chartoint(char ch)
{
    if(ch>='A' && ch<='Z') return(ch-'A');
    else if(ch>='0' && ch<='9') return (ch-'0');
    else if(ch>='a' && ch<='z') return (ch-'a');
    else return 0;
}
ll CEIL(ll x,ll y)
{
    if(x%y==0) return(x/y);
    else return(x/y +1);
}
 
ll FLOOR(ll x,ll y)
{
    if(x%y==0) return(x/y);
    else return(x/y -1);
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	INF
	.section	.rodata
	.align 8
	.type	INF, @object
	.size	INF, 8
INF:
	.quad	536870912
	.globl	MOD
	.align 8
	.type	MOD, @object
	.size	MOD, 8
MOD:
	.quad	1000000007
	.globl	FMOD
	.align 8
	.type	FMOD, @object
	.size	FMOD, 8
FMOD:
	.quad	998244353
	.globl	MAX
	.align 8
	.type	MAX, @object
	.size	MAX, 8
MAX:
	.quad	10000000005
	.globl	MIN
	.align 8
	.type	MIN, @object
	.size	MIN, 8
MIN:
	.quad	-10000000005
.LC0:
	.string	"%lld%lld"
.LC1:
	.string	"%lld\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$184, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rax, %rbx
	leaq	-160(%rbp), %rax
	leaq	-152(%rbp), %rcx
	movq	%rax, %rdx
	movq	%rcx, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movq	-160(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -112(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -176(%rbp)
	movq	$0, -168(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -192(%rbp)
	movq	$0, -184(%rbp)
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L2:
	cmpq	%rdx, %rsp
	je	.L3
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L2
.L3:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L4
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L4:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -104(%rbp)
	movq	-160(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -96(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -208(%rbp)
	movq	$0, -200(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -224(%rbp)
	movq	$0, -216(%rbp)
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %edi
	movl	$0, %edx
	divq	%rdi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L5:
	cmpq	%rdx, %rsp
	je	.L6
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L5
.L6:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L7
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L7:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -88(%rbp)
	movq	-152(%rbp), %rax
	addq	$1, %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -80(%rbp)
	movq	%rax, %rdx
	movq	%rdx, %r14
	movl	$0, %r15d
	movq	%rax, %rdx
	movq	%rdx, %r12
	movl	$0, %r13d
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L8:
	cmpq	%rdx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L9:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L10
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L10:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -72(%rbp)
	movq	$0, -144(%rbp)
	jmp	.L11
.L12:
	movabsq	$10000000005, %rcx
	movq	-72(%rbp), %rax
	movq	-144(%rbp), %rdx
	movq	%rcx, (%rax,%rdx,8)
	addq	$1, -144(%rbp)
.L11:
	movq	-152(%rbp), %rax
	cmpq	%rax, -144(%rbp)
	jle	.L12
	movq	$0, -136(%rbp)
	jmp	.L13
.L14:
	movq	-136(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	-88(%rbp), %rax
	addq	%rax, %rdx
	movq	-136(%rbp), %rax
	leaq	0(,%rax,8), %rcx
	movq	-104(%rbp), %rax
	addq	%rcx, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addq	$1, -136(%rbp)
.L13:
	movq	-160(%rbp), %rax
	cmpq	%rax, -136(%rbp)
	jl	.L14
	movq	-72(%rbp), %rax
	movq	$0, (%rax)
	movq	$0, -128(%rbp)
	jmp	.L15
.L18:
	movq	$0, -120(%rbp)
	jmp	.L16
.L17:
	movq	-152(%rbp), %rax
	movq	-104(%rbp), %rdx
	movq	-128(%rbp), %rcx
	movq	(%rdx,%rcx,8), %rcx
	movq	-120(%rbp), %rdx
	addq	%rcx, %rdx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	call	minv
	movq	%rax, -64(%rbp)
	movq	-72(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	(%rax,%rdx,8), %rcx
	movq	-88(%rbp), %rax
	movq	-128(%rbp), %rdx
	movq	(%rax,%rdx,8), %rax
	leaq	(%rcx,%rax), %rdx
	movq	-72(%rbp), %rax
	movq	-64(%rbp), %rcx
	movq	(%rax,%rcx,8), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	minv
	movq	-72(%rbp), %rdx
	movq	-64(%rbp), %rcx
	movq	%rax, (%rdx,%rcx,8)
	addq	$1, -120(%rbp)
.L16:
	movq	-152(%rbp), %rax
	cmpq	%rax, -120(%rbp)
	jle	.L17
	addq	$1, -128(%rbp)
.L15:
	movq	-160(%rbp), %rax
	cmpq	%rax, -128(%rbp)
	jl	.L18
	movq	-152(%rbp), %rdx
	movq	-72(%rbp), %rax
	movq	(%rax,%rdx,8), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	movq	%rbx, %rsp
	movq	-56(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB7:
	.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
	movq	(%rax), %rdx
	movq	-16(%rbp), %rax
	movq	(%rax), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	testq	%rax, %rax
	jns	.L22
	movl	$-1, %eax
	jmp	.L23
.L22:
	movq	-8(%rbp), %rax
	movq	(%rax), %rdx
	movq	-16(%rbp), %rax
	movq	(%rax), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	testq	%rax, %rax
	jle	.L24
	movl	$1, %eax
	jmp	.L23
.L24:
	movl	$0, %eax
.L23:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	cmp, .-cmp
	.globl	maxv
	.type	maxv, @function
maxv:
.LFB8:
	.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
	cmpq	-16(%rbp), %rax
	jle	.L26
	movq	-8(%rbp), %rax
	jmp	.L27
.L26:
	movq	-16(%rbp), %rax
.L27:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	maxv, .-maxv
	.globl	minv
	.type	minv, @function
minv:
.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
	cmpq	-16(%rbp), %rax
	jge	.L29
	movq	-8(%rbp), %rax
	jmp	.L30
.L29:
	movq	-16(%rbp), %rax
.L30:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	minv, .-minv
	.globl	gcd
	.type	gcd, @function
gcd:
.LFB10:
	.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
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	cmpq	$0, -16(%rbp)
	jne	.L32
	movq	-8(%rbp), %rax
	jmp	.L33
.L32:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	movq	-16(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	gcd
.L33:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	gcd, .-gcd
	.globl	digits
	.type	digits, @function
digits:
.LFB11:
	.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
	movq	%rdi, -8(%rbp)
	pxor	%xmm2, %xmm2
	cvtsi2sdq	-8(%rbp), %xmm2
	movq	%xmm2, %rax
	movq	%rax, %xmm0
	call	log10@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	floor@PLT
	movsd	.LC2(%rip), %xmm1
	addsd	%xmm1, %xmm0
	cvttsd2siq	%xmm0, %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	digits, .-digits
	.globl	ispoweroftwo
	.type	ispoweroftwo, @function
ispoweroftwo:
.LFB12:
	.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)
	cmpq	$0, -8(%rbp)
	je	.L37
	movq	-8(%rbp), %rax
	subq	$1, %rax
	andq	-8(%rbp), %rax
	testq	%rax, %rax
	jne	.L37
	movl	$1, %eax
	jmp	.L38
.L37:
	movl	$0, %eax
.L38:
	andl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	ispoweroftwo, .-ispoweroftwo
	.globl	isvowel
	.type	isvowel, @function
isvowel:
.LFB13:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$97, -4(%rbp)
	je	.L41
	cmpb	$101, -4(%rbp)
	je	.L41
	cmpb	$105, -4(%rbp)
	je	.L41
	cmpb	$111, -4(%rbp)
	je	.L41
	cmpb	$117, -4(%rbp)
	jne	.L42
.L41:
	movl	$1, %eax
	jmp	.L43
.L42:
	movl	$0, %eax
.L43:
	andl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	isvowel, .-isvowel
	.globl	chartoint
	.type	chartoint, @function
chartoint:
.LFB14:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$64, -4(%rbp)
	jle	.L46
	cmpb	$90, -4(%rbp)
	jg	.L46
	movsbl	-4(%rbp), %eax
	subl	$65, %eax
	cltq
	jmp	.L47
.L46:
	cmpb	$47, -4(%rbp)
	jle	.L48
	cmpb	$57, -4(%rbp)
	jg	.L48
	movsbl	-4(%rbp), %eax
	subl	$48, %eax
	cltq
	jmp	.L47
.L48:
	cmpb	$96, -4(%rbp)
	jle	.L49
	cmpb	$122, -4(%rbp)
	jg	.L49
	movsbl	-4(%rbp), %eax
	subl	$97, %eax
	cltq
	jmp	.L47
.L49:
	movl	$0, %eax
.L47:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	chartoint, .-chartoint
	.globl	CEIL
	.type	CEIL, @function
CEIL:
.LFB15:
	.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
	cqto
	idivq	-16(%rbp)
	movq	%rdx, %rax
	testq	%rax, %rax
	jne	.L51
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	jmp	.L52
.L51:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	addq	$1, %rax
.L52:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	CEIL, .-CEIL
	.globl	FLOOR
	.type	FLOOR, @function
FLOOR:
.LFB16:
	.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
	cqto
	idivq	-16(%rbp)
	movq	%rdx, %rax
	testq	%rax, %rax
	jne	.L54
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	jmp	.L55
.L54:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	subq	$1, %rax
.L55:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	FLOOR, .-FLOOR
	.section	.rodata
	.align 8
.LC2:
	.long	0
	.long	1072693248
	.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	INF
	.section	.rodata
	.align 8
	.type	INF, @object
	.size	INF, 8
INF:
	.quad	536870912
	.globl	MOD
	.align 8
	.type	MOD, @object
	.size	MOD, 8
MOD:
	.quad	1000000007
	.globl	FMOD
	.align 8
	.type	FMOD, @object
	.size	FMOD, 8
FMOD:
	.quad	998244353
	.globl	MAX
	.align 8
	.type	MAX, @object
	.size	MAX, 8
MAX:
	.quad	10000000005
	.globl	MIN
	.align 8
	.type	MIN, @object
	.size	MIN, 8
MIN:
	.quad	-10000000005
.LC0:
	.string	"%lld%lld"
.LC1:
	.string	"%lld\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$184, %rsp
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	%rsp, %rax
	movq	%rax, %rbx
	leaq	-160(%rbp), %rax
	leaq	-152(%rbp), %rcx
	movq	%rax, %rdx
	movq	%rcx, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	movq	-160(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -112(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -176(%rbp)
	movq	$0, -168(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -192(%rbp)
	movq	$0, -184(%rbp)
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L2:
	cmpq	%rdx, %rsp
	je	.L3
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L2
.L3:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L4
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L4:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -104(%rbp)
	movq	-160(%rbp), %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -96(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -208(%rbp)
	movq	$0, -200(%rbp)
	movq	%rax, %rdx
	movq	%rdx, -224(%rbp)
	movq	$0, -216(%rbp)
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %edi
	movl	$0, %edx
	divq	%rdi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L5:
	cmpq	%rdx, %rsp
	je	.L6
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L5
.L6:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L7
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L7:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -88(%rbp)
	movq	-152(%rbp), %rax
	addq	$1, %rax
	leaq	-1(%rax), %rdx
	movq	%rdx, -80(%rbp)
	movq	%rax, %rdx
	movq	%rdx, %r14
	movl	$0, %r15d
	movq	%rax, %rdx
	movq	%rdx, %r12
	movl	$0, %r13d
	leaq	0(,%rax,8), %rdx
	movl	$16, %eax
	subq	$1, %rax
	addq	%rdx, %rax
	movl	$16, %esi
	movl	$0, %edx
	divq	%rsi
	imulq	$16, %rax, %rax
	movq	%rax, %rcx
	andq	$-4096, %rcx
	movq	%rsp, %rdx
	subq	%rcx, %rdx
.L8:
	cmpq	%rdx, %rsp
	je	.L9
	subq	$4096, %rsp
	orq	$0, 4088(%rsp)
	jmp	.L8
.L9:
	movq	%rax, %rdx
	andl	$4095, %edx
	subq	%rdx, %rsp
	movq	%rax, %rdx
	andl	$4095, %edx
	testq	%rdx, %rdx
	je	.L10
	andl	$4095, %eax
	subq	$8, %rax
	addq	%rsp, %rax
	orq	$0, (%rax)
.L10:
	movq	%rsp, %rax
	addq	$7, %rax
	shrq	$3, %rax
	salq	$3, %rax
	movq	%rax, -72(%rbp)
	movq	$0, -144(%rbp)
	jmp	.L11
.L12:
	movabsq	$10000000005, %rcx
	movq	-72(%rbp), %rax
	movq	-144(%rbp), %rdx
	movq	%rcx, (%rax,%rdx,8)
	addq	$1, -144(%rbp)
.L11:
	movq	-152(%rbp), %rax
	cmpq	%rax, -144(%rbp)
	jle	.L12
	movq	$0, -136(%rbp)
	jmp	.L13
.L14:
	movq	-136(%rbp), %rax
	leaq	0(,%rax,8), %rdx
	movq	-88(%rbp), %rax
	addq	%rax, %rdx
	movq	-136(%rbp), %rax
	leaq	0(,%rax,8), %rcx
	movq	-104(%rbp), %rax
	addq	%rcx, %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	__isoc99_scanf@PLT
	addq	$1, -136(%rbp)
.L13:
	movq	-160(%rbp), %rax
	cmpq	%rax, -136(%rbp)
	jl	.L14
	movq	-72(%rbp), %rax
	movq	$0, (%rax)
	movq	$0, -128(%rbp)
	jmp	.L15
.L18:
	movq	$0, -120(%rbp)
	jmp	.L16
.L17:
	movq	-152(%rbp), %rax
	movq	-104(%rbp), %rdx
	movq	-128(%rbp), %rcx
	movq	(%rdx,%rcx,8), %rcx
	movq	-120(%rbp), %rdx
	addq	%rcx, %rdx
	movq	%rax, %rsi
	movq	%rdx, %rdi
	call	minv
	movq	%rax, -64(%rbp)
	movq	-72(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	(%rax,%rdx,8), %rcx
	movq	-88(%rbp), %rax
	movq	-128(%rbp), %rdx
	movq	(%rax,%rdx,8), %rax
	leaq	(%rcx,%rax), %rdx
	movq	-72(%rbp), %rax
	movq	-64(%rbp), %rcx
	movq	(%rax,%rcx,8), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	minv
	movq	-72(%rbp), %rdx
	movq	-64(%rbp), %rcx
	movq	%rax, (%rdx,%rcx,8)
	addq	$1, -120(%rbp)
.L16:
	movq	-152(%rbp), %rax
	cmpq	%rax, -120(%rbp)
	jle	.L17
	addq	$1, -128(%rbp)
.L15:
	movq	-160(%rbp), %rax
	cmpq	%rax, -128(%rbp)
	jl	.L18
	movq	-152(%rbp), %rdx
	movq	-72(%rbp), %rax
	movq	(%rax,%rdx,8), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	movq	%rbx, %rsp
	movq	-56(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L20
	call	__stack_chk_fail@PLT
.L20:
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.globl	cmp
	.type	cmp, @function
cmp:
.LFB7:
	.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
	movq	(%rax), %rdx
	movq	-16(%rbp), %rax
	movq	(%rax), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	testq	%rax, %rax
	jns	.L22
	movl	$-1, %eax
	jmp	.L23
.L22:
	movq	-8(%rbp), %rax
	movq	(%rax), %rdx
	movq	-16(%rbp), %rax
	movq	(%rax), %rcx
	movq	%rdx, %rax
	subq	%rcx, %rax
	testq	%rax, %rax
	jle	.L24
	movl	$1, %eax
	jmp	.L23
.L24:
	movl	$0, %eax
.L23:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	cmp, .-cmp
	.globl	maxv
	.type	maxv, @function
maxv:
.LFB8:
	.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
	cmpq	-16(%rbp), %rax
	jle	.L26
	movq	-8(%rbp), %rax
	jmp	.L27
.L26:
	movq	-16(%rbp), %rax
.L27:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	maxv, .-maxv
	.globl	minv
	.type	minv, @function
minv:
.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
	cmpq	-16(%rbp), %rax
	jge	.L29
	movq	-8(%rbp), %rax
	jmp	.L30
.L29:
	movq	-16(%rbp), %rax
.L30:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	minv, .-minv
	.globl	gcd
	.type	gcd, @function
gcd:
.LFB10:
	.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
	movq	%rdi, -8(%rbp)
	movq	%rsi, -16(%rbp)
	cmpq	$0, -16(%rbp)
	jne	.L32
	movq	-8(%rbp), %rax
	jmp	.L33
.L32:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	movq	-16(%rbp), %rax
	movq	%rdx, %rsi
	movq	%rax, %rdi
	call	gcd
.L33:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	gcd, .-gcd
	.globl	digits
	.type	digits, @function
digits:
.LFB11:
	.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
	movq	%rdi, -8(%rbp)
	pxor	%xmm2, %xmm2
	cvtsi2sdq	-8(%rbp), %xmm2
	movq	%xmm2, %rax
	movq	%rax, %xmm0
	call	log10@PLT
	movq	%xmm0, %rax
	movq	%rax, %xmm0
	call	floor@PLT
	movsd	.LC2(%rip), %xmm1
	addsd	%xmm1, %xmm0
	cvttsd2siq	%xmm0, %rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	digits, .-digits
	.globl	ispoweroftwo
	.type	ispoweroftwo, @function
ispoweroftwo:
.LFB12:
	.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)
	cmpq	$0, -8(%rbp)
	je	.L37
	movq	-8(%rbp), %rax
	subq	$1, %rax
	andq	-8(%rbp), %rax
	testq	%rax, %rax
	jne	.L37
	movl	$1, %eax
	jmp	.L38
.L37:
	movl	$0, %eax
.L38:
	andl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	ispoweroftwo, .-ispoweroftwo
	.globl	isvowel
	.type	isvowel, @function
isvowel:
.LFB13:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$97, -4(%rbp)
	je	.L41
	cmpb	$101, -4(%rbp)
	je	.L41
	cmpb	$105, -4(%rbp)
	je	.L41
	cmpb	$111, -4(%rbp)
	je	.L41
	cmpb	$117, -4(%rbp)
	jne	.L42
.L41:
	movl	$1, %eax
	jmp	.L43
.L42:
	movl	$0, %eax
.L43:
	andl	$1, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	isvowel, .-isvowel
	.globl	chartoint
	.type	chartoint, @function
chartoint:
.LFB14:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movl	%edi, %eax
	movb	%al, -4(%rbp)
	cmpb	$64, -4(%rbp)
	jle	.L46
	cmpb	$90, -4(%rbp)
	jg	.L46
	movsbl	-4(%rbp), %eax
	subl	$65, %eax
	cltq
	jmp	.L47
.L46:
	cmpb	$47, -4(%rbp)
	jle	.L48
	cmpb	$57, -4(%rbp)
	jg	.L48
	movsbl	-4(%rbp), %eax
	subl	$48, %eax
	cltq
	jmp	.L47
.L48:
	cmpb	$96, -4(%rbp)
	jle	.L49
	cmpb	$122, -4(%rbp)
	jg	.L49
	movsbl	-4(%rbp), %eax
	subl	$97, %eax
	cltq
	jmp	.L47
.L49:
	movl	$0, %eax
.L47:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	chartoint, .-chartoint
	.globl	CEIL
	.type	CEIL, @function
CEIL:
.LFB15:
	.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
	cqto
	idivq	-16(%rbp)
	movq	%rdx, %rax
	testq	%rax, %rax
	jne	.L51
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	jmp	.L52
.L51:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	addq	$1, %rax
.L52:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	CEIL, .-CEIL
	.globl	FLOOR
	.type	FLOOR, @function
FLOOR:
.LFB16:
	.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
	cqto
	idivq	-16(%rbp)
	movq	%rdx, %rax
	testq	%rax, %rax
	jne	.L54
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	jmp	.L55
.L54:
	movq	-8(%rbp), %rax
	cqto
	idivq	-16(%rbp)
	subq	$1, %rax
.L55:
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	FLOOR, .-FLOOR
	.section	.rodata
	.align 8
.LC2:
	.long	0
	.long	1072693248
	.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:
