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

```c
char m[20][21],s[101];
char direc[5]="^v<>";

solve(h,w,n){
  int i,j,x,y,d;
  char *p;
  for(i=0;i<h;i++)
    for(j=0;j<w;j++)
      if(p=strchr(direc,m[i][j])){
        y=i;x=j;
        d=p-direc;
        m[i][j]='.';
        break;
      }
  for(j=0;j<n;j++)
    switch(s[j]){
      case 'U':
        d=0;if(y>0  &&m[y-1][x]=='.')y--;break;
      case 'D':
        d=1;if(y<h-1&&m[y+1][x]=='.')y++;break;
      case 'L':
        d=2;if(x>0  &&m[y][x-1]=='.')x--;break;
      case 'R':
        d=3;if(x<w-1&&m[y][x+1]=='.')x++;break;
      case 'S':
        switch(d){
          case 0:
            for(i=y-1;~i;i--){
              if(m[i][x]=='#')break;
              if(m[i][x]=='*'){m[i][x]='.';break;}
            }break;
          case 1:
            for(i=y+1;i<h;i++){
              if(m[i][x]=='#')break;
              if(m[i][x]=='*'){m[i][x]='.';break;}
            }break;
          case 2:
            for(i=x-1;~i;i--){
              if(m[y][i]=='#')break;
              if(m[y][i]=='*'){m[y][i]='.';break;}
            }break;
          case 3:
            for(i=x+1;i<w;i++){
              if(m[y][i]=='#')break;
              if(m[y][i]=='*'){m[y][i]='.';break;}
            }break;
        }
        break;
    }
  m[y][x]=direc[d];
  for(i=0;i<h;i++)
    printf("%s\n",m[i]);
}

main(){
  int c,h,w,n,i;
  scanf("%d",&c);
  for(;c;c--){
    scanf("%d%d",&h,&w);
    for(i=0;i<h;i++)
      scanf("%s",m[i]);
    scanf("%d%s",&n,s);
    solve(h,w,n);
    if(c>1)puts("");
  }
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	m
	.bss
	.align 32
	.type	m, @object
	.size	m, 420
m:
	.zero	420
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 101
s:
	.zero	101
	.globl	direc
	.data
	.type	direc, @object
	.size	direc, 5
direc:
	.string	"^v<>"
	.text
	.globl	solve
	.type	solve, @function
solve:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movl	%edi, -36(%rbp)
	movl	%esi, -40(%rbp)
	movl	%edx, -44(%rbp)
	movl	$0, -28(%rbp)
	jmp	.L2
.L7:
	movl	$0, -24(%rbp)
	jmp	.L3
.L6:
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %esi
	leaq	direc(%rip), %rax
	movq	%rax, %rdi
	call	strchr@PLT
	movq	%rax, -8(%rbp)
	cmpq	$0, -8(%rbp)
	je	.L4
	movl	-28(%rbp), %eax
	movl	%eax, -16(%rbp)
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	leaq	direc(%rip), %rdx
	movq	-8(%rbp), %rax
	subq	%rdx, %rax
	movl	%eax, -12(%rbp)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L5
.L4:
	addl	$1, -24(%rbp)
.L3:
	movl	-24(%rbp), %eax
	cmpl	-40(%rbp), %eax
	jl	.L6
.L5:
	addl	$1, -28(%rbp)
.L2:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L7
	movl	$0, -24(%rbp)
	jmp	.L8
.L45:
	movl	-24(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$68, %eax
	cmpl	$17, %eax
	ja	.L9
	movl	%eax, %eax
	leaq	0(,%rax,4), %rdx
	leaq	.L11(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	leaq	.L11(%rip), %rdx
	addq	%rdx, %rax
	notrack jmp	*%rax
	.section	.rodata
	.align 4
	.align 4
.L11:
	.long	.L15-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L14-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L13-.L11
	.long	.L12-.L11
	.long	.L9-.L11
	.long	.L10-.L11
	.text
.L10:
	movl	$0, -12(%rbp)
	cmpl	$0, -16(%rbp)
	jle	.L48
	movl	-16(%rbp), %eax
	leal	-1(%rax), %edx
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movslq	%edx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L48
	subl	$1, -16(%rbp)
	jmp	.L48
.L15:
	movl	$1, -12(%rbp)
	movl	-36(%rbp), %eax
	subl	$1, %eax
	cmpl	%eax, -16(%rbp)
	jge	.L49
	movl	-16(%rbp), %eax
	leal	1(%rax), %edx
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movslq	%edx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L49
	addl	$1, -16(%rbp)
	jmp	.L49
.L14:
	movl	$2, -12(%rbp)
	cmpl	$0, -20(%rbp)
	jle	.L50
	movl	-20(%rbp), %eax
	subl	$1, %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L50
	subl	$1, -20(%rbp)
	jmp	.L50
.L13:
	movl	$3, -12(%rbp)
	movl	-40(%rbp), %eax
	subl	$1, %eax
	cmpl	%eax, -20(%rbp)
	jge	.L51
	movl	-20(%rbp), %eax
	addl	$1, %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L51
	addl	$1, -20(%rbp)
	jmp	.L51
.L12:
	cmpl	$3, -12(%rbp)
	je	.L20
	cmpl	$3, -12(%rbp)
	jg	.L52
	cmpl	$2, -12(%rbp)
	je	.L22
	cmpl	$2, -12(%rbp)
	jg	.L52
	cmpl	$0, -12(%rbp)
	je	.L23
	cmpl	$1, -12(%rbp)
	je	.L24
	jmp	.L52
.L23:
	movl	-16(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L25
.L29:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L53
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L28
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L27
.L28:
	subl	$1, -28(%rbp)
.L25:
	cmpl	$-1, -28(%rbp)
	jne	.L29
	jmp	.L21
.L53:
	nop
.L27:
	jmp	.L21
.L24:
	movl	-16(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L30
.L34:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L54
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L33
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L32
.L33:
	addl	$1, -28(%rbp)
.L30:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L34
	jmp	.L21
.L54:
	nop
.L32:
	jmp	.L21
.L22:
	movl	-20(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L35
.L39:
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L55
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L38
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L37
.L38:
	subl	$1, -28(%rbp)
.L35:
	cmpl	$-1, -28(%rbp)
	jne	.L39
	jmp	.L21
.L55:
	nop
.L37:
	jmp	.L21
.L20:
	movl	-20(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L40
.L44:
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L56
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L43
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L42
.L43:
	addl	$1, -28(%rbp)
.L40:
	movl	-28(%rbp), %eax
	cmpl	-40(%rbp), %eax
	jl	.L44
	jmp	.L57
.L56:
	nop
.L42:
.L57:
	nop
.L21:
	jmp	.L52
.L48:
	nop
	jmp	.L9
.L49:
	nop
	jmp	.L9
.L50:
	nop
	jmp	.L9
.L51:
	nop
	jmp	.L9
.L52:
	nop
.L9:
	addl	$1, -24(%rbp)
.L8:
	movl	-24(%rbp), %eax
	cmpl	-44(%rbp), %eax
	jl	.L45
	movl	-12(%rbp), %eax
	cltq
	leaq	direc(%rip), %rdx
	movzbl	(%rax,%rdx), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rsi), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	%cl, (%rax)
	movl	$0, -28(%rbp)
	jmp	.L46
.L47:
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	m(%rip), %rdx
	addq	%rdx, %rax
	movq	%rax, %rdi
	call	puts@PLT
	addl	$1, -28(%rbp)
.L46:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L47
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	solve, .-solve
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d%s"
.LC4:
	.string	""
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.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
	leaq	-28(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	jmp	.L59
.L63:
	leaq	-20(%rbp), %rdx
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	movl	$0, -12(%rbp)
	jmp	.L60
.L61:
	movl	-12(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	m(%rip), %rdx
	addq	%rdx, %rax
	movq	%rax, %rsi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	addl	$1, -12(%rbp)
.L60:
	movl	-24(%rbp), %eax
	cmpl	%eax, -12(%rbp)
	jl	.L61
	leaq	-16(%rbp), %rax
	leaq	s(%rip), %rdx
	movq	%rax, %rsi
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	movl	-16(%rbp), %edx
	movl	-20(%rbp), %ecx
	movl	-24(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	movl	$0, %eax
	call	solve
	movl	-28(%rbp), %eax
	cmpl	$1, %eax
	jle	.L62
	leaq	.LC4(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L62:
	movl	-28(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
.L59:
	movl	-28(%rbp), %eax
	testl	%eax, %eax
	jne	.L63
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L65
	call	__stack_chk_fail@PLT
.L65:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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
	.section	.text.unlikely,"ax",@progbits
.LCOLDB0:
	.text
.LHOTB0:
	.p2align 4
	.globl	solve
	.type	solve, @function
solve:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	m(%rip), %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	%edi, 8(%rsp)
	movl	%esi, 12(%rsp)
	movl	%edx, 16(%rsp)
	movq	%rax, (%rsp)
	testl	%edi, %edi
	jle	.L2
	movq	%rax, %rbx
	xorl	%r14d, %r14d
	leaq	direc(%rip), %r12
	movslq	%esi, %r13
	.p2align 4,,10
	.p2align 3
.L3:
	movl	12(%rsp), %esi
	xorl	%r15d, %r15d
	testl	%esi, %esi
	jg	.L6
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L4:
	addq	$1, %r15
	cmpq	%r13, %r15
	je	.L5
.L6:
	movsbl	(%rbx,%r15), %esi
	movq	%r12, %rdi
	movslq	%r15d, %rbp
	call	strchr@PLT
	testq	%rax, %rax
	je	.L4
	subl	%r12d, %eax
	movl	%r14d, 28(%rsp)
	movl	%eax, 20(%rsp)
	movslq	%r14d, %rax
	leaq	(%rax,%rax,4), %rcx
	movl	%r15d, 24(%rsp)
	leaq	(%rax,%rcx,4), %rax
	addq	(%rsp), %rax
	movb	$46, (%rax,%rbp)
.L5:
	addl	$1, %r14d
	addq	$21, %rbx
	cmpl	%r14d, 8(%rsp)
	jne	.L3
	movl	16(%rsp), %edx
	testl	%edx, %edx
	jle	.L291
.L123:
	movl	24(%rsp), %edi
	movl	28(%rsp), %r9d
	xorl	%eax, %eax
	leaq	s(%rip), %rsi
	movl	20(%rsp), %r8d
.L117:
	movslq	%eax, %rdx
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L9
	leaq	.L11(%rip), %r10
	movzbl	%cl, %ecx
	movslq	(%r10,%rcx,4), %rcx
	addq	%r10, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L11:
	.long	.L126-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L127-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L128-.L11
	.long	.L12-.L11
	.long	.L9-.L11
	.long	.L129-.L11
	.text
.L178:
	xorl	%r12d, %r12d
.L190:
	movl	%r12d, %edi
.L288:
	movl	$2, %r8d
	.p2align 4,,10
	.p2align 3
.L9:
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
.L295:
	movl	%r8d, 20(%rsp)
	movslq	%edi, %r12
	movslq	%r9d, %rcx
.L31:
	leaq	(%rcx,%rcx,4), %rax
	leaq	direc(%rip), %rdx
	leaq	(%rcx,%rax,4), %rax
	movslq	20(%rsp), %rcx
	addq	(%rsp), %rax
	movzbl	(%rdx,%rcx), %edx
	movl	8(%rsp), %ecx
	movb	%dl, (%rax,%r12)
	testl	%ecx, %ecx
	jle	.L119
.L122:
	movl	8(%rsp), %r12d
	leaq	m(%rip), %rbp
	xorl	%ebx, %ebx
	.p2align 4,,10
	.p2align 3
.L120:
	movq	%rbp, %rdi
	addl	$1, %ebx
	addq	$21, %rbp
	call	puts@PLT
	cmpl	%ebx, %r12d
	jg	.L120
.L119:
	addq	$40, %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
.L12:
	.cfi_restore_state
	cmpl	$1, %r8d
	je	.L92
	jle	.L292
	cmpl	$2, %r8d
	je	.L95
	leal	1(%rdi), %r12d
	movslq	%r9d, %rcx
	cmpl	$3, %r8d
	jne	.L9
.L89:
	leaq	(%rcx,%rcx,4), %r8
	movl	12(%rsp), %r13d
	addq	%rsi, %rdx
	leaq	.L113(%rip), %rbp
	leaq	(%rcx,%r8,4), %r11
	addq	(%rsp), %r11
.L115:
	cmpl	%r12d, %r13d
	jle	.L241
	movslq	%r12d, %r8
	jmp	.L116
	.p2align 4,,10
	.p2align 3
.L294:
	cmpb	$42, %r10b
	je	.L293
	addq	$1, %r8
	cmpl	%r8d, %r13d
	jle	.L241
.L116:
	movzbl	(%r11,%r8), %r10d
	movslq	%r8d, %rbx
	cmpb	$35, %r10b
	jne	.L294
.L241:
	movl	$3, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
.L129:
	movl	%eax, %r10d
.L10:
	addq	%rsi, %rdx
	movslq	%edi, %rbx
.L17:
	addl	$1, %eax
	testl	%r9d, %r9d
	je	.L296
	leal	-1(%r9), %ecx
	movq	%rbx, %r15
	movslq	%ecx, %r8
	leaq	(%r8,%r8,4), %r11
	leaq	(%r8,%r11,4), %r11
	addq	(%rsp), %r11
	cmpb	$46, (%r11,%rbx)
	je	.L30
	cmpl	%eax, 16(%rsp)
	jle	.L217
	movzbl	1(%rdx), %r11d
	subl	$68, %r11d
	cmpb	$17, %r11b
	ja	.L287
	leaq	.L32(%rip), %rbp
	movzbl	%r11b, %r11d
	movslq	0(%rbp,%r11,4), %r11
	addq	%rbp, %r11
	notrack jmp	*%r11
	.section	.rodata
	.align 4
	.align 4
.L32:
	.long	.L242-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L243-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L244-.L32
	.long	.L283-.L32
	.long	.L287-.L32
	.long	.L146-.L32
	.text
.L136:
	xorl	%ecx, %ecx
.L148:
	movl	%ecx, %r9d
.L287:
	xorl	%r8d, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
.L127:
	movl	%eax, %ebx
.L14:
	movslq	%r9d, %r8
	addq	%rsi, %rdx
	leaq	.L71(%rip), %r15
	leaq	(%r8,%r8,4), %rcx
	leaq	.L69(%rip), %r13
	leaq	(%r8,%rcx,4), %r10
	leaq	.L67(%rip), %rbp
	addq	(%rsp), %r10
.L55:
	addl	$1, %eax
	testl	%edi, %edi
	je	.L297
	leal	-1(%rdi), %r12d
	movq	%r8, %rcx
	movslq	%r12d, %r11
	cmpb	$46, (%r10,%r11)
	je	.L68
	cmpl	%eax, 16(%rsp)
	jle	.L232
	movzbl	1(%rdx), %r11d
	subl	$68, %r11d
	cmpb	$17, %r11b
	ja	.L288
	movzbl	%r11b, %r11d
	movslq	0(%r13,%r11,4), %r11
	addq	%r13, %r11
	notrack jmp	*%r11
	.section	.rodata
	.align 4
	.align 4
.L69:
	.long	.L242-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L186-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L244-.L69
	.long	.L285-.L69
	.long	.L288-.L69
	.long	.L245-.L69
	.text
.L126:
	movl	%eax, %ebx
.L15:
	movl	8(%rsp), %ecx
	addq	%rsi, %rdx
	movslq	%edi, %r11
	leaq	.L50(%rip), %r12
	leaq	.L48(%rip), %rbp
	leal	-1(%rcx), %r8d
.L36:
	addl	$1, %eax
	cmpl	%r9d, %r8d
	jg	.L46
	cmpl	%eax, 16(%rsp)
	jle	.L298
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L157
	movzbl	%cl, %ecx
	movslq	0(%rbp,%rcx,4), %rcx
	addq	%rbp, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L48:
	.long	.L164-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L243-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L244-.L48
	.long	.L41-.L48
	.long	.L157-.L48
	.long	.L245-.L48
	.text
.L157:
	movl	%r9d, %r13d
.L169:
	movl	%r13d, %r9d
.L289:
	movl	$1, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
.L128:
	movl	%eax, %ebp
.L13:
	movl	12(%rsp), %ecx
	movslq	%r9d, %r8
	addq	%rsi, %rdx
	leaq	.L88(%rip), %r15
	leaq	.L86(%rip), %r13
	leal	-1(%rcx), %r11d
	leaq	(%r8,%r8,4), %rcx
	leaq	(%r8,%rcx,4), %r10
	addq	(%rsp), %r10
.L74:
	addl	$1, %eax
	cmpl	%edi, %r11d
	jg	.L84
	cmpl	%eax, 16(%rsp)
	jle	.L299
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L199
	movzbl	%cl, %ecx
	movslq	0(%r13,%rcx,4), %rcx
	addq	%r13, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L86:
	.long	.L242-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L243-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L208-.L86
	.long	.L79-.L86
	.long	.L199-.L86
	.long	.L245-.L86
	.text
.L199:
	movl	%edi, %r12d
.L211:
	movl	%r12d, %edi
	movl	$3, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
	.p2align 4,,10
	.p2align 3
.L244:
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L242:
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L15
.L245:
	movl	%eax, %r10d
	movslq	%eax, %rdx
	jmp	.L10
.L243:
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L46:
	leal	1(%r9), %r13d
	movq	%r11, %r15
	movslq	%r13d, %rcx
	leaq	(%rcx,%rcx,4), %r10
	leaq	(%rcx,%r10,4), %r10
	addq	(%rsp), %r10
	cmpb	$46, (%r10,%r11)
	je	.L49
	cmpl	%eax, 16(%rsp)
	jle	.L162
	movzbl	1(%rdx), %r10d
	subl	$68, %r10d
	cmpb	$17, %r10b
	ja	.L289
	movzbl	%r10b, %r10d
	movslq	(%r12,%r10,4), %r10
	addq	%r12, %r10
	notrack jmp	*%r10
	.section	.rodata
	.align 4
	.align 4
.L50:
	.long	.L164-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L243-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L244-.L50
	.long	.L284-.L50
	.long	.L289-.L50
	.long	.L245-.L50
	.text
.L84:
	leal	1(%rdi), %r12d
	movq	%r8, %rcx
	movslq	%r12d, %rbx
	cmpb	$46, (%r10,%rbx)
	je	.L87
	cmpl	%eax, 16(%rsp)
	jle	.L240
	movzbl	1(%rdx), %ebx
	subl	$68, %ebx
	cmpb	$17, %bl
	ja	.L241
	movzbl	%bl, %ebx
	movslq	(%r15,%rbx,4), %rbx
	addq	%r15, %rbx
	notrack jmp	*%rbx
	.section	.rodata
	.align 4
	.align 4
.L88:
	.long	.L242-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L243-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L208-.L88
	.long	.L286-.L88
	.long	.L241-.L88
	.long	.L245-.L88
	.text
.L297:
	cmpl	%eax, 16(%rsp)
	jle	.L300
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L178
	movzbl	%cl, %ecx
	movslq	0(%rbp,%rcx,4), %rcx
	addq	%rbp, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L67:
	.long	.L242-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L180-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L244-.L67
	.long	.L60-.L67
	.long	.L178-.L67
	.long	.L245-.L67
	.text
.L296:
	cmpl	%eax, 16(%rsp)
	jle	.L135
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L136
	leaq	.L28(%rip), %r14
	movzbl	%cl, %ecx
	movslq	(%r14,%rcx,4), %rcx
	addq	%r14, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L28:
	.long	.L242-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L243-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L244-.L28
	.long	.L22-.L28
	.long	.L136-.L28
	.long	.L140-.L28
	.text
.L292:
	testl	%r8d, %r8d
	jne	.L9
	leal	-1(%r9), %ecx
	movslq	%edi, %r15
	movslq	%ecx, %r8
.L29:
	leaq	(%r8,%r8,4), %r10
	addq	%rsi, %rdx
	leaq	.L97(%rip), %rbp
	leaq	(%r8,%r10,4), %rbx
	addq	%r15, %rbx
	addq	(%rsp), %rbx
.L99:
	cmpl	$-1, %ecx
	je	.L215
	movq	%rbx, %r10
	movl	%ecx, %r8d
	jmp	.L100
	.p2align 4,,10
	.p2align 3
.L302:
	cmpb	$42, %r11b
	je	.L301
	subl	$1, %r8d
	subq	$21, %r10
	cmpl	$-1, %r8d
	je	.L287
.L100:
	movzbl	(%r10), %r11d
	cmpb	$35, %r11b
	jne	.L302
	jmp	.L287
.L30:
	cmpl	%eax, 16(%rsp)
	jle	.L147
	movzbl	1(%rdx), %r11d
	leal	-68(%r11), %r8d
	cmpb	$17, %r8b
	ja	.L148
	leaq	.L33(%rip), %r11
	movzbl	%r8b, %r8d
	movslq	(%r11,%r8,4), %r8
	addq	%r11, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L33:
	.long	.L149-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L150-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L151-.L33
	.long	.L34-.L33
	.long	.L148-.L33
	.long	.L16-.L33
	.text
.L68:
	cmpl	%eax, 16(%rsp)
	jle	.L189
	movzbl	1(%rdx), %r11d
	subl	$68, %r11d
	cmpb	$17, %r11b
	ja	.L190
	movzbl	%r11b, %r11d
	movslq	(%r15,%r11,4), %r11
	addq	%r15, %r11
	notrack jmp	*%r11
	.section	.rodata
	.align 4
	.align 4
.L71:
	.long	.L212-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L54-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L192-.L71
	.long	.L72-.L71
	.long	.L190-.L71
	.long	.L214-.L71
	.text
.L49:
	cmpl	%eax, 16(%rsp)
	jle	.L168
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L169
	leaq	.L52(%rip), %r10
	movzbl	%cl, %ecx
	movslq	(%r10,%rcx,4), %rcx
	addq	%r10, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L52:
	.long	.L35-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L170-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L171-.L52
	.long	.L53-.L52
	.long	.L169-.L52
	.long	.L172-.L52
	.text
.L87:
	cmpl	%eax, 16(%rsp)
	jle	.L210
	movzbl	1(%rdx), %ebx
	subl	$68, %ebx
	cmpb	$17, %bl
	ja	.L211
	leaq	.L90(%rip), %r14
	movzbl	%bl, %ebx
	movslq	(%r14,%rbx,4), %rbx
	addq	%r14, %rbx
	notrack jmp	*%rbx
	.section	.rodata
	.align 4
	.align 4
.L90:
	.long	.L212-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L213-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L73-.L90
	.long	.L91-.L90
	.long	.L211-.L90
	.long	.L214-.L90
	.text
.L79:
	leal	1(%rdi), %r12d
	movslq	%eax, %rdx
	movslq	%r9d, %rcx
	jmp	.L89
.L41:
	leal	1(%r9), %r13d
	movslq	%eax, %rdx
	movslq	%edi, %r15
	movslq	%r13d, %rcx
.L51:
	leaq	(%rcx,%rcx,4), %r8
	movl	8(%rsp), %ebp
	addq	%rsi, %rdx
	leaq	.L103(%rip), %rbx
	leaq	(%rcx,%r8,4), %r11
	addq	%r15, %r11
	addq	(%rsp), %r11
.L105:
	cmpl	%r13d, %ebp
	jle	.L289
	movq	%r11, %r8
	movl	%r13d, %ecx
	jmp	.L106
	.p2align 4,,10
	.p2align 3
.L101:
	addl	$1, %ecx
	addq	$21, %r8
	cmpl	%ecx, %ebp
	je	.L289
.L106:
	movzbl	(%r8), %r10d
	cmpb	$35, %r10b
	je	.L289
	cmpb	$42, %r10b
	jne	.L101
	movslq	%ecx, %rcx
	addl	$1, %eax
	leaq	(%rcx,%rcx,4), %r8
	leaq	(%rcx,%r8,4), %rcx
	addq	(%rsp), %rcx
	movb	$46, (%rcx,%r15)
	cmpl	%eax, 16(%rsp)
	jle	.L102
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L289
	movzbl	%cl, %ecx
	movslq	(%rbx,%rcx,4), %rcx
	addq	%rbx, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L103:
	.long	.L242-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L243-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L244-.L103
	.long	.L104-.L103
	.long	.L289-.L103
	.long	.L245-.L103
	.text
.L208:
	movl	%edi, %r12d
.L73:
	addq	$1, %rdx
	cmpl	%edi, %r11d
	jle	.L262
	movl	%r12d, %edi
	movl	%eax, %ebp
	jmp	.L74
.L60:
	leal	-1(%rdi), %r12d
	movslq	%eax, %rdx
	movslq	%r9d, %rcx
.L70:
	leaq	(%rcx,%rcx,4), %r8
	addq	%rsi, %rdx
	leaq	.L108(%rip), %rbp
	leaq	(%rcx,%r8,4), %r11
	addq	(%rsp), %r11
.L110:
	cmpl	$-1, %r12d
	je	.L230
	movslq	%r12d, %r8
	jmp	.L111
	.p2align 4,,10
	.p2align 3
.L304:
	cmpb	$42, %r10b
	je	.L303
	subq	$1, %r8
	cmpl	$-1, %r8d
	je	.L288
.L111:
	movzbl	(%r11,%r8), %r10d
	movslq	%r8d, %rbx
	cmpb	$35, %r10b
	jne	.L304
	jmp	.L288
.L22:
	leal	-1(%r9), %ecx
	movslq	%eax, %rdx
	movslq	%edi, %r15
	movslq	%ecx, %r8
	jmp	.L29
.L164:
	movl	%r9d, %r13d
.L35:
	addq	$1, %rdx
	cmpl	%r9d, %r8d
	jle	.L260
	movl	%r13d, %r9d
	movl	%eax, %ebx
	jmp	.L36
.L72:
	leal	-2(%rdi), %edx
	movl	%r12d, %edi
	movl	%edx, %r12d
.L285:
	movslq	%eax, %rdx
	jmp	.L70
.L34:
	leal	-2(%r9), %edx
	movl	%ecx, %r9d
	movslq	%edx, %r8
	movq	%r8, %rcx
.L283:
	movslq	%eax, %rdx
	jmp	.L29
.L91:
	leal	2(%rdi), %edx
	movl	%r12d, %edi
	movl	%edx, %r12d
.L286:
	movslq	%eax, %rdx
	jmp	.L89
.L53:
	leal	2(%r9), %edx
	movl	%r13d, %r9d
	movslq	%edx, %rcx
	movq	%rcx, %r13
.L284:
	movslq	%eax, %rdx
	jmp	.L51
.L140:
	xorl	%ecx, %ecx
.L16:
	addq	$1, %rdx
	testl	%r9d, %r9d
	je	.L259
	movl	%ecx, %r9d
	movl	%eax, %r10d
	jmp	.L17
.L180:
	xorl	%r12d, %r12d
.L54:
	addq	$1, %rdx
	testl	%edi, %edi
	je	.L261
	movl	%r12d, %edi
	movl	%eax, %ebx
	jmp	.L55
.L2:
	movl	16(%rsp), %eax
	testl	%eax, %eax
	jg	.L123
	movzbl	direc(%rip), %eax
	leaq	m(%rip), %rdx
	movb	%al, (%rdx)
	jmp	.L119
.L291:
	movslq	28(%rsp), %rax
	movslq	20(%rsp), %rsi
	movslq	24(%rsp), %rdx
	leaq	(%rax,%rax,4), %rcx
	leaq	(%rax,%rcx,4), %rax
	leaq	direc(%rip), %rcx
	addq	(%rsp), %rax
	movzbl	(%rcx,%rsi), %ecx
	movb	%cl, (%rax,%rdx)
	jmp	.L122
.L301:
	movslq	%r8d, %r8
	addl	$1, %eax
	leaq	(%r8,%r8,4), %r10
	leaq	(%r8,%r10,4), %r8
	addq	(%rsp), %r8
	movb	$46, (%r8,%r15)
	cmpl	%eax, 16(%rsp)
	jle	.L217
	movzbl	1(%rdx), %r14d
	leal	-68(%r14), %r8d
	cmpb	$17, %r8b
	ja	.L287
	movzbl	%r8b, %r8d
	movslq	0(%rbp,%r8,4), %r8
	addq	%rbp, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L97:
	.long	.L242-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L243-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L244-.L97
	.long	.L98-.L97
	.long	.L287-.L97
	.long	.L245-.L97
	.text
.L303:
	movb	$46, (%r11,%rbx)
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jle	.L232
	movzbl	1(%rdx), %ebx
	leal	-68(%rbx), %r8d
	cmpb	$17, %r8b
	ja	.L288
	movzbl	%r8b, %r8d
	movslq	0(%rbp,%r8,4), %r8
	addq	%rbp, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L108:
	.long	.L242-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L243-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L244-.L108
	.long	.L109-.L108
	.long	.L288-.L108
	.long	.L245-.L108
	.text
.L293:
	movb	$46, (%r11,%rbx)
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jle	.L240
	movzbl	1(%rdx), %ebx
	leal	-68(%rbx), %r8d
	cmpb	$17, %r8b
	ja	.L241
	movzbl	%r8b, %r8d
	movslq	0(%rbp,%r8,4), %r8
	addq	%rbp, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L113:
	.long	.L242-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L243-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L244-.L113
	.long	.L114-.L113
	.long	.L241-.L113
	.long	.L245-.L113
	.text
.L298:
	movl	%edi, 24(%rsp)
	movl	%r9d, %r13d
.L37:
	movl	$1, 20(%rsp)
	movslq	24(%rsp), %r12
	movslq	%r13d, %rcx
	jmp	.L31
.L299:
	movl	%r9d, 28(%rsp)
	movl	%edi, %r12d
.L75:
	movl	$3, 20(%rsp)
	movslq	28(%rsp), %rcx
	movslq	%r12d, %r12
	jmp	.L31
.L232:
	movl	$2, 20(%rsp)
	movslq	%edi, %r12
	jmp	.L31
.L217:
	movl	$0, 20(%rsp)
	movq	%r15, %r12
	movslq	%r9d, %rcx
	jmp	.L31
.L135:
	movl	%edi, 24(%rsp)
	xorl	%ecx, %ecx
.L18:
	movl	$0, 20(%rsp)
	movslq	24(%rsp), %r12
	movslq	%ecx, %rcx
	jmp	.L31
.L240:
	movl	$3, 20(%rsp)
	movslq	%edi, %r12
	jmp	.L31
.L300:
	movl	%r9d, 28(%rsp)
	xorl	%r12d, %r12d
.L56:
	movl	$2, 20(%rsp)
	movslq	28(%rsp), %rcx
	movslq	%r12d, %r12
	jmp	.L31
.L186:
	movl	%edi, %r12d
	jmp	.L54
.L146:
	movl	%r9d, %ecx
	jmp	.L16
.L214:
	movl	%r12d, %edi
	movl	%eax, %r10d
	movslq	%eax, %rdx
	jmp	.L10
.L212:
	movl	%r12d, %edi
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L15
.L151:
	movl	%ecx, %r9d
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L150:
	movl	%ecx, %r9d
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L149:
	movl	%ecx, %r9d
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L15
.L192:
	movl	%r12d, %edi
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L171:
	movl	%r13d, %r9d
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L170:
	movl	%r13d, %r9d
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L172:
	movl	%r13d, %r9d
	movl	%eax, %r10d
	movslq	%eax, %rdx
	jmp	.L10
.L98:
	addq	$1, %rdx
	jmp	.L99
.L104:
	addq	$1, %rdx
	jmp	.L105
.L213:
	movl	%r12d, %edi
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L114:
	addq	$1, %rdx
	jmp	.L115
.L109:
	addq	$1, %rdx
	jmp	.L110
.L95:
	leal	-1(%rdi), %r12d
	movslq	%r9d, %rcx
	jmp	.L70
.L162:
	movl	$1, 20(%rsp)
	movq	%r11, %r12
	movslq	%r9d, %rcx
	jmp	.L31
.L92:
	leal	1(%r9), %r13d
	movslq	%edi, %r15
	movslq	%r13d, %rcx
	jmp	.L51
.L147:
	movl	$0, 20(%rsp)
	movq	%rbx, %r12
	movq	%r8, %rcx
	jmp	.L31
.L189:
	movl	$2, 20(%rsp)
	movq	%r11, %r12
	jmp	.L31
.L168:
	movl	$1, 20(%rsp)
	movq	%r11, %r12
	jmp	.L31
.L210:
	movl	$3, 20(%rsp)
	movq	%rbx, %r12
	jmp	.L31
.L215:
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	jmp	.L9
.L102:
	movslq	%r9d, %rax
	leaq	(%rax,%rax,4), %rdx
	leaq	(%rax,%rdx,4), %rax
	movzbl	1+direc(%rip), %edx
	addq	(%rsp), %rax
	movb	%dl, (%rax,%r15)
	jmp	.L122
.L230:
	movl	$2, %r8d
	xorl	%edi, %edi
	jmp	.L9
	.cfi_endproc
	.section	.text.unlikely
	.cfi_startproc
	.type	solve.cold, @function
solve.cold:
.LFSB0:
.L261:
	.cfi_def_cfa_offset 96
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	leal	2(%rbx), %edx
	leaq	.L59(%rip), %rdi
	movslq	%edx, %rdx
.L64:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L274
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L275
	movzbl	%cl, %ecx
	movslq	(%rdi,%rcx,4), %rcx
	addq	%rdi, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L59:
	.long	.L195-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L62-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L175-.L59
	.long	.L176-.L59
	.long	.L276-.L59
	.long	.L198-.L59
	.section	.text.unlikely
.L262:
	leal	2(%rbp), %edx
	leaq	.L78(%rip), %rdi
	movslq	%edx, %rdx
.L83:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L278
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L279
	movzbl	%cl, %ecx
	movslq	(%rdi,%rcx,4), %rcx
	addq	%rdi, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L78:
	.long	.L195-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L196-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L80-.L78
	.long	.L197-.L78
	.long	.L280-.L78
	.long	.L198-.L78
	.section	.text.unlikely
.L274:
	movl	%r9d, 28(%rsp)
	jmp	.L56
.L260:
	leal	2(%rbx), %edx
	leaq	.L40(%rip), %r8
	movslq	%edx, %rdx
.L45:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L270
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L271
	movzbl	%cl, %ecx
	movslq	(%r8,%rcx,4), %rcx
	addq	%r8, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L40:
	.long	.L44-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L153-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L154-.L40
	.long	.L155-.L40
	.long	.L272-.L40
	.long	.L156-.L40
	.section	.text.unlikely
.L259:
	leal	2(%r10), %edx
	movslq	%edx, %rdx
.L26:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L266
	movzbl	(%rsi,%rdx), %ebx
	leal	-68(%rbx), %r8d
	cmpb	$17, %r8b
	ja	.L267
	leaq	.L21(%rip), %rbx
	movzbl	%r8b, %r8d
	movslq	(%rbx,%r8,4), %r8
	addq	%rbx, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L21:
	.long	.L131-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L132-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L133-.L21
	.long	.L134-.L21
	.long	.L268-.L21
	.long	.L20-.L21
	.section	.text.unlikely
.L270:
	movl	%edi, 24(%rsp)
	jmp	.L37
.L266:
	movl	%edi, 24(%rsp)
	jmp	.L18
.L271:
	jmp	.L169
.L156:
	movl	%edx, %r10d
	movl	%r13d, %r9d
	movslq	%edx, %rdx
	jmp	.L10
.L155:
	movl	%r13d, %r9d
	jmp	.L41
.L154:
	movl	%edx, %ebp
	movl	%r13d, %r9d
	movslq	%edx, %rdx
	jmp	.L13
.L153:
	movl	%edx, %ebx
	movl	%r13d, %r9d
	movslq	%edx, %rdx
	jmp	.L14
.L44:
	addq	$1, %rdx
	jmp	.L45
.L272:
	jmp	.L169
.L267:
	jmp	.L148
.L20:
	addq	$1, %rdx
	jmp	.L26
.L134:
	movl	%ecx, %r9d
	jmp	.L22
.L133:
	movl	%edx, %ebp
	movl	%ecx, %r9d
	movslq	%edx, %rdx
	jmp	.L13
.L132:
	movl	%edx, %ebx
	movl	%ecx, %r9d
	movslq	%edx, %rdx
	jmp	.L14
.L131:
	movl	%edx, %ebx
	movl	%ecx, %r9d
	movslq	%edx, %rdx
	jmp	.L15
.L268:
	jmp	.L148
.L278:
	movl	%r9d, 28(%rsp)
	jmp	.L75
.L275:
	jmp	.L190
.L198:
	movl	%eax, %r10d
	movl	%r12d, %edi
	movslq	%eax, %rdx
	jmp	.L10
.L176:
	movl	%r12d, %edi
	jmp	.L60
.L175:
	movl	%edx, %ebp
	movl	%r12d, %edi
	movslq	%edx, %rdx
	jmp	.L13
.L62:
	addq	$1, %rdx
	jmp	.L64
.L195:
	movl	%eax, %ebx
	movl	%r12d, %edi
	movslq	%eax, %rdx
	jmp	.L15
.L276:
	jmp	.L190
.L279:
	jmp	.L211
.L197:
	movl	%r12d, %edi
	jmp	.L79
.L80:
	addq	$1, %rdx
	jmp	.L83
.L196:
	movl	%edx, %ebx
	movl	%r12d, %edi
	movslq	%edx, %rdx
	jmp	.L14
.L280:
	jmp	.L211
	.cfi_endproc
.LFE0:
	.text
	.size	solve, .-solve
	.section	.text.unlikely
	.size	solve.cold, .-solve.cold
.LCOLDE0:
	.text
.LHOTE0:
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC1:
	.string	"%d"
.LC2:
	.string	"%d%d"
.LC3:
	.string	"%d%s"
.LC4:
	.string	"%s"
.LC5:
	.string	""
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC1(%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
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rsi
	call	scanf@PLT
	movl	24(%rsp), %edx
	testl	%edx, %edx
	je	.L313
	leaq	36(%rsp), %rax
	leaq	32(%rsp), %r15
	movq	%rax, 8(%rsp)
	leaq	28(%rsp), %r14
	leaq	.LC2(%rip), %r13
	leaq	.LC4(%rip), %rbx
	.p2align 4,,10
	.p2align 3
.L306:
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	28(%rsp), %eax
	leaq	m(%rip), %r12
	xorl	%ebp, %ebp
	testl	%eax, %eax
	jle	.L311
	.p2align 4,,10
	.p2align 3
.L310:
	movq	%r12, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	addl	$1, %ebp
	call	scanf@PLT
	addq	$21, %r12
	cmpl	%ebp, 28(%rsp)
	jg	.L310
.L311:
	movq	8(%rsp), %rsi
	leaq	s(%rip), %rdx
	leaq	.LC3(%rip), %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	36(%rsp), %edx
	movl	32(%rsp), %esi
	xorl	%eax, %eax
	movl	28(%rsp), %edi
	call	solve
	movl	24(%rsp), %eax
	cmpl	$1, %eax
	jg	.L324
	subl	$1, %eax
	movl	%eax, 24(%rsp)
	jne	.L306
.L313:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L325
	addq	$56, %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
	.p2align 4,,10
	.p2align 3
.L324:
	.cfi_restore_state
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	subl	$1, 24(%rsp)
	jne	.L306
	jmp	.L313
.L325:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.globl	direc
	.data
	.type	direc, @object
	.size	direc, 5
direc:
	.string	"^v<>"
	.globl	s
	.bss
	.align 32
	.type	s, @object
	.size	s, 101
s:
	.zero	101
	.globl	m
	.align 32
	.type	m, @object
	.size	m, 420
m:
	.zero	420
	.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	.text.unlikely,"ax",@progbits
.LCOLDB0:
	.text
.LHOTB0:
	.p2align 4
	.globl	solve
	.type	solve, @function
solve:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	m(%rip), %rax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$40, %rsp
	.cfi_def_cfa_offset 96
	movl	%edi, 8(%rsp)
	movl	%esi, 12(%rsp)
	movl	%edx, 16(%rsp)
	movq	%rax, (%rsp)
	testl	%edi, %edi
	jle	.L2
	movq	%rax, %rbx
	xorl	%r14d, %r14d
	leaq	direc(%rip), %r12
	movslq	%esi, %r13
	.p2align 4,,10
	.p2align 3
.L3:
	movl	12(%rsp), %esi
	xorl	%r15d, %r15d
	testl	%esi, %esi
	jg	.L6
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L4:
	addq	$1, %r15
	cmpq	%r13, %r15
	je	.L5
.L6:
	movsbl	(%rbx,%r15), %esi
	movq	%r12, %rdi
	movslq	%r15d, %rbp
	call	strchr@PLT
	testq	%rax, %rax
	je	.L4
	subl	%r12d, %eax
	movl	%r14d, 28(%rsp)
	movl	%eax, 20(%rsp)
	movslq	%r14d, %rax
	leaq	(%rax,%rax,4), %rcx
	movl	%r15d, 24(%rsp)
	leaq	(%rax,%rcx,4), %rax
	addq	(%rsp), %rax
	movb	$46, (%rax,%rbp)
.L5:
	addl	$1, %r14d
	addq	$21, %rbx
	cmpl	%r14d, 8(%rsp)
	jne	.L3
	movl	16(%rsp), %edx
	testl	%edx, %edx
	jle	.L291
.L123:
	movl	24(%rsp), %edi
	movl	28(%rsp), %r9d
	xorl	%eax, %eax
	leaq	s(%rip), %rsi
	movl	20(%rsp), %r8d
.L117:
	movslq	%eax, %rdx
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L9
	leaq	.L11(%rip), %r10
	movzbl	%cl, %ecx
	movslq	(%r10,%rcx,4), %rcx
	addq	%r10, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L11:
	.long	.L126-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L127-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L128-.L11
	.long	.L12-.L11
	.long	.L9-.L11
	.long	.L129-.L11
	.text
.L178:
	xorl	%r12d, %r12d
.L190:
	movl	%r12d, %edi
.L288:
	movl	$2, %r8d
	.p2align 4,,10
	.p2align 3
.L9:
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
.L295:
	movl	%r8d, 20(%rsp)
	movslq	%edi, %r12
	movslq	%r9d, %rcx
.L31:
	leaq	(%rcx,%rcx,4), %rax
	leaq	direc(%rip), %rdx
	leaq	(%rcx,%rax,4), %rax
	movslq	20(%rsp), %rcx
	addq	(%rsp), %rax
	movzbl	(%rdx,%rcx), %edx
	movl	8(%rsp), %ecx
	movb	%dl, (%rax,%r12)
	testl	%ecx, %ecx
	jle	.L119
.L122:
	movl	8(%rsp), %r12d
	leaq	m(%rip), %rbp
	xorl	%ebx, %ebx
	.p2align 4,,10
	.p2align 3
.L120:
	movq	%rbp, %rdi
	addl	$1, %ebx
	addq	$21, %rbp
	call	puts@PLT
	cmpl	%ebx, %r12d
	jg	.L120
.L119:
	addq	$40, %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
.L12:
	.cfi_restore_state
	cmpl	$1, %r8d
	je	.L92
	jle	.L292
	cmpl	$2, %r8d
	je	.L95
	leal	1(%rdi), %r12d
	movslq	%r9d, %rcx
	cmpl	$3, %r8d
	jne	.L9
.L89:
	leaq	(%rcx,%rcx,4), %r8
	movl	12(%rsp), %r13d
	addq	%rsi, %rdx
	leaq	.L113(%rip), %rbp
	leaq	(%rcx,%r8,4), %r11
	addq	(%rsp), %r11
.L115:
	cmpl	%r12d, %r13d
	jle	.L241
	movslq	%r12d, %r8
	jmp	.L116
	.p2align 4,,10
	.p2align 3
.L294:
	cmpb	$42, %r10b
	je	.L293
	addq	$1, %r8
	cmpl	%r8d, %r13d
	jle	.L241
.L116:
	movzbl	(%r11,%r8), %r10d
	movslq	%r8d, %rbx
	cmpb	$35, %r10b
	jne	.L294
.L241:
	movl	$3, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
.L129:
	movl	%eax, %r10d
.L10:
	addq	%rsi, %rdx
	movslq	%edi, %rbx
.L17:
	addl	$1, %eax
	testl	%r9d, %r9d
	je	.L296
	leal	-1(%r9), %ecx
	movq	%rbx, %r15
	movslq	%ecx, %r8
	leaq	(%r8,%r8,4), %r11
	leaq	(%r8,%r11,4), %r11
	addq	(%rsp), %r11
	cmpb	$46, (%r11,%rbx)
	je	.L30
	cmpl	%eax, 16(%rsp)
	jle	.L217
	movzbl	1(%rdx), %r11d
	subl	$68, %r11d
	cmpb	$17, %r11b
	ja	.L287
	leaq	.L32(%rip), %rbp
	movzbl	%r11b, %r11d
	movslq	0(%rbp,%r11,4), %r11
	addq	%rbp, %r11
	notrack jmp	*%r11
	.section	.rodata
	.align 4
	.align 4
.L32:
	.long	.L242-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L243-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L287-.L32
	.long	.L244-.L32
	.long	.L283-.L32
	.long	.L287-.L32
	.long	.L146-.L32
	.text
.L136:
	xorl	%ecx, %ecx
.L148:
	movl	%ecx, %r9d
.L287:
	xorl	%r8d, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
.L127:
	movl	%eax, %ebx
.L14:
	movslq	%r9d, %r8
	addq	%rsi, %rdx
	leaq	.L71(%rip), %r15
	leaq	(%r8,%r8,4), %rcx
	leaq	.L69(%rip), %r13
	leaq	(%r8,%rcx,4), %r10
	leaq	.L67(%rip), %rbp
	addq	(%rsp), %r10
.L55:
	addl	$1, %eax
	testl	%edi, %edi
	je	.L297
	leal	-1(%rdi), %r12d
	movq	%r8, %rcx
	movslq	%r12d, %r11
	cmpb	$46, (%r10,%r11)
	je	.L68
	cmpl	%eax, 16(%rsp)
	jle	.L232
	movzbl	1(%rdx), %r11d
	subl	$68, %r11d
	cmpb	$17, %r11b
	ja	.L288
	movzbl	%r11b, %r11d
	movslq	0(%r13,%r11,4), %r11
	addq	%r13, %r11
	notrack jmp	*%r11
	.section	.rodata
	.align 4
	.align 4
.L69:
	.long	.L242-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L186-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L288-.L69
	.long	.L244-.L69
	.long	.L285-.L69
	.long	.L288-.L69
	.long	.L245-.L69
	.text
.L126:
	movl	%eax, %ebx
.L15:
	movl	8(%rsp), %ecx
	addq	%rsi, %rdx
	movslq	%edi, %r11
	leaq	.L50(%rip), %r12
	leaq	.L48(%rip), %rbp
	leal	-1(%rcx), %r8d
.L36:
	addl	$1, %eax
	cmpl	%r9d, %r8d
	jg	.L46
	cmpl	%eax, 16(%rsp)
	jle	.L298
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L157
	movzbl	%cl, %ecx
	movslq	0(%rbp,%rcx,4), %rcx
	addq	%rbp, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L48:
	.long	.L164-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L243-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L157-.L48
	.long	.L244-.L48
	.long	.L41-.L48
	.long	.L157-.L48
	.long	.L245-.L48
	.text
.L157:
	movl	%r9d, %r13d
.L169:
	movl	%r13d, %r9d
.L289:
	movl	$1, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
.L128:
	movl	%eax, %ebp
.L13:
	movl	12(%rsp), %ecx
	movslq	%r9d, %r8
	addq	%rsi, %rdx
	leaq	.L88(%rip), %r15
	leaq	.L86(%rip), %r13
	leal	-1(%rcx), %r11d
	leaq	(%r8,%r8,4), %rcx
	leaq	(%r8,%rcx,4), %r10
	addq	(%rsp), %r10
.L74:
	addl	$1, %eax
	cmpl	%edi, %r11d
	jg	.L84
	cmpl	%eax, 16(%rsp)
	jle	.L299
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L199
	movzbl	%cl, %ecx
	movslq	0(%r13,%rcx,4), %rcx
	addq	%r13, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L86:
	.long	.L242-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L243-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L199-.L86
	.long	.L208-.L86
	.long	.L79-.L86
	.long	.L199-.L86
	.long	.L245-.L86
	.text
.L199:
	movl	%edi, %r12d
.L211:
	movl	%r12d, %edi
	movl	$3, %r8d
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jg	.L117
	jmp	.L295
	.p2align 4,,10
	.p2align 3
.L244:
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L242:
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L15
.L245:
	movl	%eax, %r10d
	movslq	%eax, %rdx
	jmp	.L10
.L243:
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L46:
	leal	1(%r9), %r13d
	movq	%r11, %r15
	movslq	%r13d, %rcx
	leaq	(%rcx,%rcx,4), %r10
	leaq	(%rcx,%r10,4), %r10
	addq	(%rsp), %r10
	cmpb	$46, (%r10,%r11)
	je	.L49
	cmpl	%eax, 16(%rsp)
	jle	.L162
	movzbl	1(%rdx), %r10d
	subl	$68, %r10d
	cmpb	$17, %r10b
	ja	.L289
	movzbl	%r10b, %r10d
	movslq	(%r12,%r10,4), %r10
	addq	%r12, %r10
	notrack jmp	*%r10
	.section	.rodata
	.align 4
	.align 4
.L50:
	.long	.L164-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L243-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L289-.L50
	.long	.L244-.L50
	.long	.L284-.L50
	.long	.L289-.L50
	.long	.L245-.L50
	.text
.L84:
	leal	1(%rdi), %r12d
	movq	%r8, %rcx
	movslq	%r12d, %rbx
	cmpb	$46, (%r10,%rbx)
	je	.L87
	cmpl	%eax, 16(%rsp)
	jle	.L240
	movzbl	1(%rdx), %ebx
	subl	$68, %ebx
	cmpb	$17, %bl
	ja	.L241
	movzbl	%bl, %ebx
	movslq	(%r15,%rbx,4), %rbx
	addq	%r15, %rbx
	notrack jmp	*%rbx
	.section	.rodata
	.align 4
	.align 4
.L88:
	.long	.L242-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L243-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L241-.L88
	.long	.L208-.L88
	.long	.L286-.L88
	.long	.L241-.L88
	.long	.L245-.L88
	.text
.L297:
	cmpl	%eax, 16(%rsp)
	jle	.L300
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L178
	movzbl	%cl, %ecx
	movslq	0(%rbp,%rcx,4), %rcx
	addq	%rbp, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L67:
	.long	.L242-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L180-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L178-.L67
	.long	.L244-.L67
	.long	.L60-.L67
	.long	.L178-.L67
	.long	.L245-.L67
	.text
.L296:
	cmpl	%eax, 16(%rsp)
	jle	.L135
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L136
	leaq	.L28(%rip), %r14
	movzbl	%cl, %ecx
	movslq	(%r14,%rcx,4), %rcx
	addq	%r14, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L28:
	.long	.L242-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L243-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L136-.L28
	.long	.L244-.L28
	.long	.L22-.L28
	.long	.L136-.L28
	.long	.L140-.L28
	.text
.L292:
	testl	%r8d, %r8d
	jne	.L9
	leal	-1(%r9), %ecx
	movslq	%edi, %r15
	movslq	%ecx, %r8
.L29:
	leaq	(%r8,%r8,4), %r10
	addq	%rsi, %rdx
	leaq	.L97(%rip), %rbp
	leaq	(%r8,%r10,4), %rbx
	addq	%r15, %rbx
	addq	(%rsp), %rbx
.L99:
	cmpl	$-1, %ecx
	je	.L215
	movq	%rbx, %r10
	movl	%ecx, %r8d
	jmp	.L100
	.p2align 4,,10
	.p2align 3
.L302:
	cmpb	$42, %r11b
	je	.L301
	subl	$1, %r8d
	subq	$21, %r10
	cmpl	$-1, %r8d
	je	.L287
.L100:
	movzbl	(%r10), %r11d
	cmpb	$35, %r11b
	jne	.L302
	jmp	.L287
.L30:
	cmpl	%eax, 16(%rsp)
	jle	.L147
	movzbl	1(%rdx), %r11d
	leal	-68(%r11), %r8d
	cmpb	$17, %r8b
	ja	.L148
	leaq	.L33(%rip), %r11
	movzbl	%r8b, %r8d
	movslq	(%r11,%r8,4), %r8
	addq	%r11, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L33:
	.long	.L149-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L150-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L148-.L33
	.long	.L151-.L33
	.long	.L34-.L33
	.long	.L148-.L33
	.long	.L16-.L33
	.text
.L68:
	cmpl	%eax, 16(%rsp)
	jle	.L189
	movzbl	1(%rdx), %r11d
	subl	$68, %r11d
	cmpb	$17, %r11b
	ja	.L190
	movzbl	%r11b, %r11d
	movslq	(%r15,%r11,4), %r11
	addq	%r15, %r11
	notrack jmp	*%r11
	.section	.rodata
	.align 4
	.align 4
.L71:
	.long	.L212-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L54-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L190-.L71
	.long	.L192-.L71
	.long	.L72-.L71
	.long	.L190-.L71
	.long	.L214-.L71
	.text
.L49:
	cmpl	%eax, 16(%rsp)
	jle	.L168
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L169
	leaq	.L52(%rip), %r10
	movzbl	%cl, %ecx
	movslq	(%r10,%rcx,4), %rcx
	addq	%r10, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L52:
	.long	.L35-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L170-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L169-.L52
	.long	.L171-.L52
	.long	.L53-.L52
	.long	.L169-.L52
	.long	.L172-.L52
	.text
.L87:
	cmpl	%eax, 16(%rsp)
	jle	.L210
	movzbl	1(%rdx), %ebx
	subl	$68, %ebx
	cmpb	$17, %bl
	ja	.L211
	leaq	.L90(%rip), %r14
	movzbl	%bl, %ebx
	movslq	(%r14,%rbx,4), %rbx
	addq	%r14, %rbx
	notrack jmp	*%rbx
	.section	.rodata
	.align 4
	.align 4
.L90:
	.long	.L212-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L213-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L211-.L90
	.long	.L73-.L90
	.long	.L91-.L90
	.long	.L211-.L90
	.long	.L214-.L90
	.text
.L79:
	leal	1(%rdi), %r12d
	movslq	%eax, %rdx
	movslq	%r9d, %rcx
	jmp	.L89
.L41:
	leal	1(%r9), %r13d
	movslq	%eax, %rdx
	movslq	%edi, %r15
	movslq	%r13d, %rcx
.L51:
	leaq	(%rcx,%rcx,4), %r8
	movl	8(%rsp), %ebp
	addq	%rsi, %rdx
	leaq	.L103(%rip), %rbx
	leaq	(%rcx,%r8,4), %r11
	addq	%r15, %r11
	addq	(%rsp), %r11
.L105:
	cmpl	%r13d, %ebp
	jle	.L289
	movq	%r11, %r8
	movl	%r13d, %ecx
	jmp	.L106
	.p2align 4,,10
	.p2align 3
.L101:
	addl	$1, %ecx
	addq	$21, %r8
	cmpl	%ecx, %ebp
	je	.L289
.L106:
	movzbl	(%r8), %r10d
	cmpb	$35, %r10b
	je	.L289
	cmpb	$42, %r10b
	jne	.L101
	movslq	%ecx, %rcx
	addl	$1, %eax
	leaq	(%rcx,%rcx,4), %r8
	leaq	(%rcx,%r8,4), %rcx
	addq	(%rsp), %rcx
	movb	$46, (%rcx,%r15)
	cmpl	%eax, 16(%rsp)
	jle	.L102
	movzbl	1(%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L289
	movzbl	%cl, %ecx
	movslq	(%rbx,%rcx,4), %rcx
	addq	%rbx, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L103:
	.long	.L242-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L243-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L289-.L103
	.long	.L244-.L103
	.long	.L104-.L103
	.long	.L289-.L103
	.long	.L245-.L103
	.text
.L208:
	movl	%edi, %r12d
.L73:
	addq	$1, %rdx
	cmpl	%edi, %r11d
	jle	.L262
	movl	%r12d, %edi
	movl	%eax, %ebp
	jmp	.L74
.L60:
	leal	-1(%rdi), %r12d
	movslq	%eax, %rdx
	movslq	%r9d, %rcx
.L70:
	leaq	(%rcx,%rcx,4), %r8
	addq	%rsi, %rdx
	leaq	.L108(%rip), %rbp
	leaq	(%rcx,%r8,4), %r11
	addq	(%rsp), %r11
.L110:
	cmpl	$-1, %r12d
	je	.L230
	movslq	%r12d, %r8
	jmp	.L111
	.p2align 4,,10
	.p2align 3
.L304:
	cmpb	$42, %r10b
	je	.L303
	subq	$1, %r8
	cmpl	$-1, %r8d
	je	.L288
.L111:
	movzbl	(%r11,%r8), %r10d
	movslq	%r8d, %rbx
	cmpb	$35, %r10b
	jne	.L304
	jmp	.L288
.L22:
	leal	-1(%r9), %ecx
	movslq	%eax, %rdx
	movslq	%edi, %r15
	movslq	%ecx, %r8
	jmp	.L29
.L164:
	movl	%r9d, %r13d
.L35:
	addq	$1, %rdx
	cmpl	%r9d, %r8d
	jle	.L260
	movl	%r13d, %r9d
	movl	%eax, %ebx
	jmp	.L36
.L72:
	leal	-2(%rdi), %edx
	movl	%r12d, %edi
	movl	%edx, %r12d
.L285:
	movslq	%eax, %rdx
	jmp	.L70
.L34:
	leal	-2(%r9), %edx
	movl	%ecx, %r9d
	movslq	%edx, %r8
	movq	%r8, %rcx
.L283:
	movslq	%eax, %rdx
	jmp	.L29
.L91:
	leal	2(%rdi), %edx
	movl	%r12d, %edi
	movl	%edx, %r12d
.L286:
	movslq	%eax, %rdx
	jmp	.L89
.L53:
	leal	2(%r9), %edx
	movl	%r13d, %r9d
	movslq	%edx, %rcx
	movq	%rcx, %r13
.L284:
	movslq	%eax, %rdx
	jmp	.L51
.L140:
	xorl	%ecx, %ecx
.L16:
	addq	$1, %rdx
	testl	%r9d, %r9d
	je	.L259
	movl	%ecx, %r9d
	movl	%eax, %r10d
	jmp	.L17
.L180:
	xorl	%r12d, %r12d
.L54:
	addq	$1, %rdx
	testl	%edi, %edi
	je	.L261
	movl	%r12d, %edi
	movl	%eax, %ebx
	jmp	.L55
.L2:
	movl	16(%rsp), %eax
	testl	%eax, %eax
	jg	.L123
	movzbl	direc(%rip), %eax
	leaq	m(%rip), %rdx
	movb	%al, (%rdx)
	jmp	.L119
.L291:
	movslq	28(%rsp), %rax
	movslq	20(%rsp), %rsi
	movslq	24(%rsp), %rdx
	leaq	(%rax,%rax,4), %rcx
	leaq	(%rax,%rcx,4), %rax
	leaq	direc(%rip), %rcx
	addq	(%rsp), %rax
	movzbl	(%rcx,%rsi), %ecx
	movb	%cl, (%rax,%rdx)
	jmp	.L122
.L301:
	movslq	%r8d, %r8
	addl	$1, %eax
	leaq	(%r8,%r8,4), %r10
	leaq	(%r8,%r10,4), %r8
	addq	(%rsp), %r8
	movb	$46, (%r8,%r15)
	cmpl	%eax, 16(%rsp)
	jle	.L217
	movzbl	1(%rdx), %r14d
	leal	-68(%r14), %r8d
	cmpb	$17, %r8b
	ja	.L287
	movzbl	%r8b, %r8d
	movslq	0(%rbp,%r8,4), %r8
	addq	%rbp, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L97:
	.long	.L242-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L243-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L287-.L97
	.long	.L244-.L97
	.long	.L98-.L97
	.long	.L287-.L97
	.long	.L245-.L97
	.text
.L303:
	movb	$46, (%r11,%rbx)
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jle	.L232
	movzbl	1(%rdx), %ebx
	leal	-68(%rbx), %r8d
	cmpb	$17, %r8b
	ja	.L288
	movzbl	%r8b, %r8d
	movslq	0(%rbp,%r8,4), %r8
	addq	%rbp, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L108:
	.long	.L242-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L243-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L288-.L108
	.long	.L244-.L108
	.long	.L109-.L108
	.long	.L288-.L108
	.long	.L245-.L108
	.text
.L293:
	movb	$46, (%r11,%rbx)
	addl	$1, %eax
	cmpl	%eax, 16(%rsp)
	jle	.L240
	movzbl	1(%rdx), %ebx
	leal	-68(%rbx), %r8d
	cmpb	$17, %r8b
	ja	.L241
	movzbl	%r8b, %r8d
	movslq	0(%rbp,%r8,4), %r8
	addq	%rbp, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L113:
	.long	.L242-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L243-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L241-.L113
	.long	.L244-.L113
	.long	.L114-.L113
	.long	.L241-.L113
	.long	.L245-.L113
	.text
.L298:
	movl	%edi, 24(%rsp)
	movl	%r9d, %r13d
.L37:
	movl	$1, 20(%rsp)
	movslq	24(%rsp), %r12
	movslq	%r13d, %rcx
	jmp	.L31
.L299:
	movl	%r9d, 28(%rsp)
	movl	%edi, %r12d
.L75:
	movl	$3, 20(%rsp)
	movslq	28(%rsp), %rcx
	movslq	%r12d, %r12
	jmp	.L31
.L232:
	movl	$2, 20(%rsp)
	movslq	%edi, %r12
	jmp	.L31
.L217:
	movl	$0, 20(%rsp)
	movq	%r15, %r12
	movslq	%r9d, %rcx
	jmp	.L31
.L135:
	movl	%edi, 24(%rsp)
	xorl	%ecx, %ecx
.L18:
	movl	$0, 20(%rsp)
	movslq	24(%rsp), %r12
	movslq	%ecx, %rcx
	jmp	.L31
.L240:
	movl	$3, 20(%rsp)
	movslq	%edi, %r12
	jmp	.L31
.L300:
	movl	%r9d, 28(%rsp)
	xorl	%r12d, %r12d
.L56:
	movl	$2, 20(%rsp)
	movslq	28(%rsp), %rcx
	movslq	%r12d, %r12
	jmp	.L31
.L186:
	movl	%edi, %r12d
	jmp	.L54
.L146:
	movl	%r9d, %ecx
	jmp	.L16
.L214:
	movl	%r12d, %edi
	movl	%eax, %r10d
	movslq	%eax, %rdx
	jmp	.L10
.L212:
	movl	%r12d, %edi
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L15
.L151:
	movl	%ecx, %r9d
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L150:
	movl	%ecx, %r9d
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L149:
	movl	%ecx, %r9d
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L15
.L192:
	movl	%r12d, %edi
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L171:
	movl	%r13d, %r9d
	movl	%eax, %ebp
	movslq	%eax, %rdx
	jmp	.L13
.L170:
	movl	%r13d, %r9d
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L172:
	movl	%r13d, %r9d
	movl	%eax, %r10d
	movslq	%eax, %rdx
	jmp	.L10
.L98:
	addq	$1, %rdx
	jmp	.L99
.L104:
	addq	$1, %rdx
	jmp	.L105
.L213:
	movl	%r12d, %edi
	movl	%eax, %ebx
	movslq	%eax, %rdx
	jmp	.L14
.L114:
	addq	$1, %rdx
	jmp	.L115
.L109:
	addq	$1, %rdx
	jmp	.L110
.L95:
	leal	-1(%rdi), %r12d
	movslq	%r9d, %rcx
	jmp	.L70
.L162:
	movl	$1, 20(%rsp)
	movq	%r11, %r12
	movslq	%r9d, %rcx
	jmp	.L31
.L92:
	leal	1(%r9), %r13d
	movslq	%edi, %r15
	movslq	%r13d, %rcx
	jmp	.L51
.L147:
	movl	$0, 20(%rsp)
	movq	%rbx, %r12
	movq	%r8, %rcx
	jmp	.L31
.L189:
	movl	$2, 20(%rsp)
	movq	%r11, %r12
	jmp	.L31
.L168:
	movl	$1, 20(%rsp)
	movq	%r11, %r12
	jmp	.L31
.L210:
	movl	$3, 20(%rsp)
	movq	%rbx, %r12
	jmp	.L31
.L215:
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	jmp	.L9
.L102:
	movslq	%r9d, %rax
	leaq	(%rax,%rax,4), %rdx
	leaq	(%rax,%rdx,4), %rax
	movzbl	1+direc(%rip), %edx
	addq	(%rsp), %rax
	movb	%dl, (%rax,%r15)
	jmp	.L122
.L230:
	movl	$2, %r8d
	xorl	%edi, %edi
	jmp	.L9
	.cfi_endproc
	.section	.text.unlikely
	.cfi_startproc
	.type	solve.cold, @function
solve.cold:
.LFSB0:
.L261:
	.cfi_def_cfa_offset 96
	.cfi_offset 3, -56
	.cfi_offset 6, -48
	.cfi_offset 12, -40
	.cfi_offset 13, -32
	.cfi_offset 14, -24
	.cfi_offset 15, -16
	leal	2(%rbx), %edx
	leaq	.L59(%rip), %rdi
	movslq	%edx, %rdx
.L64:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L274
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L275
	movzbl	%cl, %ecx
	movslq	(%rdi,%rcx,4), %rcx
	addq	%rdi, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L59:
	.long	.L195-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L62-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L276-.L59
	.long	.L175-.L59
	.long	.L176-.L59
	.long	.L276-.L59
	.long	.L198-.L59
	.section	.text.unlikely
.L262:
	leal	2(%rbp), %edx
	leaq	.L78(%rip), %rdi
	movslq	%edx, %rdx
.L83:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L278
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L279
	movzbl	%cl, %ecx
	movslq	(%rdi,%rcx,4), %rcx
	addq	%rdi, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L78:
	.long	.L195-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L196-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L280-.L78
	.long	.L80-.L78
	.long	.L197-.L78
	.long	.L280-.L78
	.long	.L198-.L78
	.section	.text.unlikely
.L274:
	movl	%r9d, 28(%rsp)
	jmp	.L56
.L260:
	leal	2(%rbx), %edx
	leaq	.L40(%rip), %r8
	movslq	%edx, %rdx
.L45:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L270
	movzbl	(%rsi,%rdx), %ecx
	subl	$68, %ecx
	cmpb	$17, %cl
	ja	.L271
	movzbl	%cl, %ecx
	movslq	(%r8,%rcx,4), %rcx
	addq	%r8, %rcx
	notrack jmp	*%rcx
	.section	.rodata
	.align 4
	.align 4
.L40:
	.long	.L44-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L153-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L272-.L40
	.long	.L154-.L40
	.long	.L155-.L40
	.long	.L272-.L40
	.long	.L156-.L40
	.section	.text.unlikely
.L259:
	leal	2(%r10), %edx
	movslq	%edx, %rdx
.L26:
	movl	%edx, %eax
	cmpl	%edx, 16(%rsp)
	jle	.L266
	movzbl	(%rsi,%rdx), %ebx
	leal	-68(%rbx), %r8d
	cmpb	$17, %r8b
	ja	.L267
	leaq	.L21(%rip), %rbx
	movzbl	%r8b, %r8d
	movslq	(%rbx,%r8,4), %r8
	addq	%rbx, %r8
	notrack jmp	*%r8
	.section	.rodata
	.align 4
	.align 4
.L21:
	.long	.L131-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L132-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L268-.L21
	.long	.L133-.L21
	.long	.L134-.L21
	.long	.L268-.L21
	.long	.L20-.L21
	.section	.text.unlikely
.L270:
	movl	%edi, 24(%rsp)
	jmp	.L37
.L266:
	movl	%edi, 24(%rsp)
	jmp	.L18
.L271:
	jmp	.L169
.L156:
	movl	%edx, %r10d
	movl	%r13d, %r9d
	movslq	%edx, %rdx
	jmp	.L10
.L155:
	movl	%r13d, %r9d
	jmp	.L41
.L154:
	movl	%edx, %ebp
	movl	%r13d, %r9d
	movslq	%edx, %rdx
	jmp	.L13
.L153:
	movl	%edx, %ebx
	movl	%r13d, %r9d
	movslq	%edx, %rdx
	jmp	.L14
.L44:
	addq	$1, %rdx
	jmp	.L45
.L272:
	jmp	.L169
.L267:
	jmp	.L148
.L20:
	addq	$1, %rdx
	jmp	.L26
.L134:
	movl	%ecx, %r9d
	jmp	.L22
.L133:
	movl	%edx, %ebp
	movl	%ecx, %r9d
	movslq	%edx, %rdx
	jmp	.L13
.L132:
	movl	%edx, %ebx
	movl	%ecx, %r9d
	movslq	%edx, %rdx
	jmp	.L14
.L131:
	movl	%edx, %ebx
	movl	%ecx, %r9d
	movslq	%edx, %rdx
	jmp	.L15
.L268:
	jmp	.L148
.L278:
	movl	%r9d, 28(%rsp)
	jmp	.L75
.L275:
	jmp	.L190
.L198:
	movl	%eax, %r10d
	movl	%r12d, %edi
	movslq	%eax, %rdx
	jmp	.L10
.L176:
	movl	%r12d, %edi
	jmp	.L60
.L175:
	movl	%edx, %ebp
	movl	%r12d, %edi
	movslq	%edx, %rdx
	jmp	.L13
.L62:
	addq	$1, %rdx
	jmp	.L64
.L195:
	movl	%eax, %ebx
	movl	%r12d, %edi
	movslq	%eax, %rdx
	jmp	.L15
.L276:
	jmp	.L190
.L279:
	jmp	.L211
.L197:
	movl	%r12d, %edi
	jmp	.L79
.L80:
	addq	$1, %rdx
	jmp	.L83
.L196:
	movl	%edx, %ebx
	movl	%r12d, %edi
	movslq	%edx, %rdx
	jmp	.L14
.L280:
	jmp	.L211
	.cfi_endproc
.LFE0:
	.text
	.size	solve, .-solve
	.section	.text.unlikely
	.size	solve.cold, .-solve.cold
.LCOLDE0:
	.text
.LHOTE0:
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC1:
	.string	"%d"
.LC2:
	.string	"%d%d"
.LC3:
	.string	"%d%s"
.LC4:
	.string	"%s"
.LC5:
	.string	""
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC1(%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
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 40(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rsi
	call	scanf@PLT
	movl	24(%rsp), %edx
	testl	%edx, %edx
	je	.L313
	leaq	36(%rsp), %rax
	leaq	32(%rsp), %r15
	movq	%rax, 8(%rsp)
	leaq	28(%rsp), %r14
	leaq	.LC2(%rip), %r13
	leaq	.LC4(%rip), %rbx
	.p2align 4,,10
	.p2align 3
.L306:
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r13, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	28(%rsp), %eax
	leaq	m(%rip), %r12
	xorl	%ebp, %ebp
	testl	%eax, %eax
	jle	.L311
	.p2align 4,,10
	.p2align 3
.L310:
	movq	%r12, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	addl	$1, %ebp
	call	scanf@PLT
	addq	$21, %r12
	cmpl	%ebp, 28(%rsp)
	jg	.L310
.L311:
	movq	8(%rsp), %rsi
	leaq	s(%rip), %rdx
	leaq	.LC3(%rip), %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	36(%rsp), %edx
	movl	32(%rsp), %esi
	xorl	%eax, %eax
	movl	28(%rsp), %edi
	call	solve
	movl	24(%rsp), %eax
	cmpl	$1, %eax
	jg	.L324
	subl	$1, %eax
	movl	%eax, 24(%rsp)
	jne	.L306
.L313:
	movq	40(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L325
	addq	$56, %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
	.p2align 4,,10
	.p2align 3
.L324:
	.cfi_restore_state
	leaq	.LC5(%rip), %rdi
	call	puts@PLT
	subl	$1, 24(%rsp)
	jne	.L306
	jmp	.L313
.L325:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.globl	direc
	.data
	.type	direc, @object
	.size	direc, 5
direc:
	.string	"^v<>"
	.globl	s
	.bss
	.align 32
	.type	s, @object
	.size	s, 101
s:
	.zero	101
	.globl	m
	.align 32
	.type	m, @object
	.size	m, 420
m:
	.zero	420
	.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:

char m[20][21],s[101];
char direc[5]="^v<>";

solve(h,w,n){
  int i,j,x,y,d;
  char *p;
  for(i=0;i<h;i++)
    for(j=0;j<w;j++)
      if(p=strchr(direc,m[i][j])){
        y=i;x=j;
        d=p-direc;
        m[i][j]='.';
        break;
      }
  for(j=0;j<n;j++)
    switch(s[j]){
      case 'U':
        d=0;if(y>0  &&m[y-1][x]=='.')y--;break;
      case 'D':
        d=1;if(y<h-1&&m[y+1][x]=='.')y++;break;
      case 'L':
        d=2;if(x>0  &&m[y][x-1]=='.')x--;break;
      case 'R':
        d=3;if(x<w-1&&m[y][x+1]=='.')x++;break;
      case 'S':
        switch(d){
          case 0:
            for(i=y-1;~i;i--){
              if(m[i][x]=='#')break;
              if(m[i][x]=='*'){m[i][x]='.';break;}
            }break;
          case 1:
            for(i=y+1;i<h;i++){
              if(m[i][x]=='#')break;
              if(m[i][x]=='*'){m[i][x]='.';break;}
            }break;
          case 2:
            for(i=x-1;~i;i--){
              if(m[y][i]=='#')break;
              if(m[y][i]=='*'){m[y][i]='.';break;}
            }break;
          case 3:
            for(i=x+1;i<w;i++){
              if(m[y][i]=='#')break;
              if(m[y][i]=='*'){m[y][i]='.';break;}
            }break;
        }
        break;
    }
  m[y][x]=direc[d];
  for(i=0;i<h;i++)
    printf("%s\n",m[i]);
}

main(){
  int c,h,w,n,i;
  scanf("%d",&c);
  for(;c;c--){
    scanf("%d%d",&h,&w);
    for(i=0;i<h;i++)
      scanf("%s",m[i]);
    scanf("%d%s",&n,s);
    solve(h,w,n);
    if(c>1)puts("");
  }
}
4
4 6
*.*..*
*.....
...-..
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
*****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
..-...
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
*****
*****
***)*
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*..../
..-...
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
*****
*****
***)*
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
...-..
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DESRRSUUSLLS
3 5
#->**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
*****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
..-...
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
****v
*****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
...-..
^..#*.
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
*****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
...-..
^.*#..
10
SRSSRRUSSR
2 2
<.
..
12
DESRRSUUSLLS
3 5
#->**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
***v*
*****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
...-..
^..#*.
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v****
)****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
..-...
^.*#..
10
SRSSRRUSSR
2 2
.<
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-**#
15
SSSDRSSSDRSSSUU
5 5
v***)
*****
*****
***)*
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD
 4
4 6
*.*..*
*.....
...-..
^..#*.
10
SRSSRRUSSR
2 2
<.
..
12
DDSRRSUUSLLS
3 5
>-#**
.-*#*
.-*#*
15
SSSDRSSSDRSSSUU
5 5
v****
)****
*****
*****
*****
44
SSSSDDRSDRSRDSULUURSSSSRRRRDSSSSDDLSDLSDLSSD

*....*
......
..>-..
...#..

<.
..

^-#**
.-.#*
.-..#

.....
.***.
..*..
..*..
....v
 *....*
......
..-...
..>#..

<.
..

^-#**
.-.#*
.-..#

.....
.***.
..*..
...).
....v
 *....*
...../
..-...
..>#..

<.
..

^-#**
.-.#*
.-..#

.....
.***.
..*..
...).
....v
 *....*
......
..>-..
...#..

<.
..

#-..^
.-*#*
.-**#

.....
.***.
..*..
..*..
....v
 *....*
......
..-...
..>#..

<.
..

^-#**
.-.#*
.-..#

****.
****.
****.
****.
..v..
 *....*
......
..>-..
...#*.

<.
..

^-#**
.-.#*
.-..#

.....
.***.
..*..
..*..
....v
 *....*
......
..>-..
...#..

<.
..

#-..^
.-*#*
.-**#

***..
***..
**...
**...
*..v.
 *....*
......
..>-..
...#*.

<.
..

^-#**
.-.#*
.-..#

.....
)*.*.
.**..
.**..
.*..v
 *....*
......
..-...
..>#..

<.
..

^-#**
.-.#*
.-..#

....)
.**.*
....*
.v*)*
..*.*
 *....*
......
..>-..
...#*.

<.
..

^-#**
.-.#*
.-.#*

.....
)*.*.
.**..
.**..
.*..v

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

```c
char m[20][21],s[101];
char direc[5]="^v<>";

solve(h,w,n){
  int i,j,x,y,d;
  char *p;
  for(i=0;i<h;i++)
    for(j=0;j<w;j++)
      if(p=strchr(direc,m[i][j])){
        y=i;x=j;
        d=p-direc;
        m[i][j]='.';
        break;
      }
  for(j=0;j<n;j++)
    switch(s[j]){
      case 'U':
        d=0;if(y>0  &&m[y-1][x]=='.')y--;break;
      case 'D':
        d=1;if(y<h-1&&m[y+1][x]=='.')y++;break;
      case 'L':
        d=2;if(x>0  &&m[y][x-1]=='.')x--;break;
      case 'R':
        d=3;if(x<w-1&&m[y][x+1]=='.')x++;break;
      case 'S':
        switch(d){
          case 0:
            for(i=y-1;~i;i--){
              if(m[i][x]=='#')break;
              if(m[i][x]=='*'){m[i][x]='.';break;}
            }break;
          case 1:
            for(i=y+1;i<h;i++){
              if(m[i][x]=='#')break;
              if(m[i][x]=='*'){m[i][x]='.';break;}
            }break;
          case 2:
            for(i=x-1;~i;i--){
              if(m[y][i]=='#')break;
              if(m[y][i]=='*'){m[y][i]='.';break;}
            }break;
          case 3:
            for(i=x+1;i<w;i++){
              if(m[y][i]=='#')break;
              if(m[y][i]=='*'){m[y][i]='.';break;}
            }break;
        }
        break;
    }
  m[y][x]=direc[d];
  for(i=0;i<h;i++)
    printf("%s\n",m[i]);
}

main(){
  int c,h,w,n,i;
  scanf("%d",&c);
  for(;c;c--){
    scanf("%d%d",&h,&w);
    for(i=0;i<h;i++)
      scanf("%s",m[i]);
    scanf("%d%s",&n,s);
    solve(h,w,n);
    if(c>1)puts("");
  }
}```

Unoptimized Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.globl	m
	.bss
	.align 32
	.type	m, @object
	.size	m, 420
m:
	.zero	420
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 101
s:
	.zero	101
	.globl	direc
	.data
	.type	direc, @object
	.size	direc, 5
direc:
	.string	"^v<>"
	.text
	.globl	solve
	.type	solve, @function
solve:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movl	%edi, -36(%rbp)
	movl	%esi, -40(%rbp)
	movl	%edx, -44(%rbp)
	movl	$0, -28(%rbp)
	jmp	.L2
.L7:
	movl	$0, -24(%rbp)
	jmp	.L3
.L6:
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %esi
	leaq	direc(%rip), %rax
	movq	%rax, %rdi
	call	strchr@PLT
	movq	%rax, -8(%rbp)
	cmpq	$0, -8(%rbp)
	je	.L4
	movl	-28(%rbp), %eax
	movl	%eax, -16(%rbp)
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	leaq	direc(%rip), %rdx
	movq	-8(%rbp), %rax
	subq	%rdx, %rax
	movl	%eax, -12(%rbp)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L5
.L4:
	addl	$1, -24(%rbp)
.L3:
	movl	-24(%rbp), %eax
	cmpl	-40(%rbp), %eax
	jl	.L6
.L5:
	addl	$1, -28(%rbp)
.L2:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L7
	movl	$0, -24(%rbp)
	jmp	.L8
.L45:
	movl	-24(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$68, %eax
	cmpl	$17, %eax
	ja	.L9
	movl	%eax, %eax
	leaq	0(,%rax,4), %rdx
	leaq	.L11(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	leaq	.L11(%rip), %rdx
	addq	%rdx, %rax
	notrack jmp	*%rax
	.section	.rodata
	.align 4
	.align 4
.L11:
	.long	.L15-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L14-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L13-.L11
	.long	.L12-.L11
	.long	.L9-.L11
	.long	.L10-.L11
	.text
.L10:
	movl	$0, -12(%rbp)
	cmpl	$0, -16(%rbp)
	jle	.L48
	movl	-16(%rbp), %eax
	leal	-1(%rax), %edx
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movslq	%edx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L48
	subl	$1, -16(%rbp)
	jmp	.L48
.L15:
	movl	$1, -12(%rbp)
	movl	-36(%rbp), %eax
	subl	$1, %eax
	cmpl	%eax, -16(%rbp)
	jge	.L49
	movl	-16(%rbp), %eax
	leal	1(%rax), %edx
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movslq	%edx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L49
	addl	$1, -16(%rbp)
	jmp	.L49
.L14:
	movl	$2, -12(%rbp)
	cmpl	$0, -20(%rbp)
	jle	.L50
	movl	-20(%rbp), %eax
	subl	$1, %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L50
	subl	$1, -20(%rbp)
	jmp	.L50
.L13:
	movl	$3, -12(%rbp)
	movl	-40(%rbp), %eax
	subl	$1, %eax
	cmpl	%eax, -20(%rbp)
	jge	.L51
	movl	-20(%rbp), %eax
	addl	$1, %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L51
	addl	$1, -20(%rbp)
	jmp	.L51
.L12:
	cmpl	$3, -12(%rbp)
	je	.L20
	cmpl	$3, -12(%rbp)
	jg	.L52
	cmpl	$2, -12(%rbp)
	je	.L22
	cmpl	$2, -12(%rbp)
	jg	.L52
	cmpl	$0, -12(%rbp)
	je	.L23
	cmpl	$1, -12(%rbp)
	je	.L24
	jmp	.L52
.L23:
	movl	-16(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L25
.L29:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L53
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L28
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L27
.L28:
	subl	$1, -28(%rbp)
.L25:
	cmpl	$-1, -28(%rbp)
	jne	.L29
	jmp	.L21
.L53:
	nop
.L27:
	jmp	.L21
.L24:
	movl	-16(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L30
.L34:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L54
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L33
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L32
.L33:
	addl	$1, -28(%rbp)
.L30:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L34
	jmp	.L21
.L54:
	nop
.L32:
	jmp	.L21
.L22:
	movl	-20(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L35
.L39:
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L55
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L38
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L37
.L38:
	subl	$1, -28(%rbp)
.L35:
	cmpl	$-1, -28(%rbp)
	jne	.L39
	jmp	.L21
.L55:
	nop
.L37:
	jmp	.L21
.L20:
	movl	-20(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L40
.L44:
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L56
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L43
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L42
.L43:
	addl	$1, -28(%rbp)
.L40:
	movl	-28(%rbp), %eax
	cmpl	-40(%rbp), %eax
	jl	.L44
	jmp	.L57
.L56:
	nop
.L42:
.L57:
	nop
.L21:
	jmp	.L52
.L48:
	nop
	jmp	.L9
.L49:
	nop
	jmp	.L9
.L50:
	nop
	jmp	.L9
.L51:
	nop
	jmp	.L9
.L52:
	nop
.L9:
	addl	$1, -24(%rbp)
.L8:
	movl	-24(%rbp), %eax
	cmpl	-44(%rbp), %eax
	jl	.L45
	movl	-12(%rbp), %eax
	cltq
	leaq	direc(%rip), %rdx
	movzbl	(%rax,%rdx), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rsi), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	%cl, (%rax)
	movl	$0, -28(%rbp)
	jmp	.L46
.L47:
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	m(%rip), %rdx
	addq	%rdx, %rax
	movq	%rax, %rdi
	call	puts@PLT
	addl	$1, -28(%rbp)
.L46:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L47
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	solve, .-solve
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d%s"
.LC4:
	.string	""
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.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
	leaq	-28(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	jmp	.L59
.L63:
	leaq	-20(%rbp), %rdx
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	movl	$0, -12(%rbp)
	jmp	.L60
.L61:
	movl	-12(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	m(%rip), %rdx
	addq	%rdx, %rax
	movq	%rax, %rsi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	addl	$1, -12(%rbp)
.L60:
	movl	-24(%rbp), %eax
	cmpl	%eax, -12(%rbp)
	jl	.L61
	leaq	-16(%rbp), %rax
	leaq	s(%rip), %rdx
	movq	%rax, %rsi
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	movl	-16(%rbp), %edx
	movl	-20(%rbp), %ecx
	movl	-24(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	movl	$0, %eax
	call	solve
	movl	-28(%rbp), %eax
	cmpl	$1, %eax
	jle	.L62
	leaq	.LC4(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L62:
	movl	-28(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
.L59:
	movl	-28(%rbp), %eax
	testl	%eax, %eax
	jne	.L63
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L65
	call	__stack_chk_fail@PLT
.L65:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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	m
	.bss
	.align 32
	.type	m, @object
	.size	m, 420
m:
	.zero	420
	.globl	s
	.align 32
	.type	s, @object
	.size	s, 101
s:
	.zero	101
	.globl	direc
	.data
	.type	direc, @object
	.size	direc, 5
direc:
	.string	"^v<>"
	.text
	.globl	solve
	.type	solve, @function
solve:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$48, %rsp
	movl	%edi, -36(%rbp)
	movl	%esi, -40(%rbp)
	movl	%edx, -44(%rbp)
	movl	$0, -28(%rbp)
	jmp	.L2
.L7:
	movl	$0, -24(%rbp)
	jmp	.L3
.L6:
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	movsbl	%al, %eax
	movl	%eax, %esi
	leaq	direc(%rip), %rax
	movq	%rax, %rdi
	call	strchr@PLT
	movq	%rax, -8(%rbp)
	cmpq	$0, -8(%rbp)
	je	.L4
	movl	-28(%rbp), %eax
	movl	%eax, -16(%rbp)
	movl	-24(%rbp), %eax
	movl	%eax, -20(%rbp)
	leaq	direc(%rip), %rdx
	movq	-8(%rbp), %rax
	subq	%rdx, %rax
	movl	%eax, -12(%rbp)
	movl	-24(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L5
.L4:
	addl	$1, -24(%rbp)
.L3:
	movl	-24(%rbp), %eax
	cmpl	-40(%rbp), %eax
	jl	.L6
.L5:
	addl	$1, -28(%rbp)
.L2:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L7
	movl	$0, -24(%rbp)
	jmp	.L8
.L45:
	movl	-24(%rbp), %eax
	cltq
	leaq	s(%rip), %rdx
	movzbl	(%rax,%rdx), %eax
	movsbl	%al, %eax
	subl	$68, %eax
	cmpl	$17, %eax
	ja	.L9
	movl	%eax, %eax
	leaq	0(,%rax,4), %rdx
	leaq	.L11(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	leaq	.L11(%rip), %rdx
	addq	%rdx, %rax
	notrack jmp	*%rax
	.section	.rodata
	.align 4
	.align 4
.L11:
	.long	.L15-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L14-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L9-.L11
	.long	.L13-.L11
	.long	.L12-.L11
	.long	.L9-.L11
	.long	.L10-.L11
	.text
.L10:
	movl	$0, -12(%rbp)
	cmpl	$0, -16(%rbp)
	jle	.L48
	movl	-16(%rbp), %eax
	leal	-1(%rax), %edx
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movslq	%edx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L48
	subl	$1, -16(%rbp)
	jmp	.L48
.L15:
	movl	$1, -12(%rbp)
	movl	-36(%rbp), %eax
	subl	$1, %eax
	cmpl	%eax, -16(%rbp)
	jge	.L49
	movl	-16(%rbp), %eax
	leal	1(%rax), %edx
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movslq	%edx, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L49
	addl	$1, -16(%rbp)
	jmp	.L49
.L14:
	movl	$2, -12(%rbp)
	cmpl	$0, -20(%rbp)
	jle	.L50
	movl	-20(%rbp), %eax
	subl	$1, %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L50
	subl	$1, -20(%rbp)
	jmp	.L50
.L13:
	movl	$3, -12(%rbp)
	movl	-40(%rbp), %eax
	subl	$1, %eax
	cmpl	%eax, -20(%rbp)
	jge	.L51
	movl	-20(%rbp), %eax
	addl	$1, %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$46, %al
	jne	.L51
	addl	$1, -20(%rbp)
	jmp	.L51
.L12:
	cmpl	$3, -12(%rbp)
	je	.L20
	cmpl	$3, -12(%rbp)
	jg	.L52
	cmpl	$2, -12(%rbp)
	je	.L22
	cmpl	$2, -12(%rbp)
	jg	.L52
	cmpl	$0, -12(%rbp)
	je	.L23
	cmpl	$1, -12(%rbp)
	je	.L24
	jmp	.L52
.L23:
	movl	-16(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L25
.L29:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L53
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L28
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L27
.L28:
	subl	$1, -28(%rbp)
.L25:
	cmpl	$-1, -28(%rbp)
	jne	.L29
	jmp	.L21
.L53:
	nop
.L27:
	jmp	.L21
.L24:
	movl	-16(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L30
.L34:
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L54
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L33
	movl	-20(%rbp), %eax
	movslq	%eax, %rcx
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L32
.L33:
	addl	$1, -28(%rbp)
.L30:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L34
	jmp	.L21
.L54:
	nop
.L32:
	jmp	.L21
.L22:
	movl	-20(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L35
.L39:
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L55
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L38
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L37
.L38:
	subl	$1, -28(%rbp)
.L35:
	cmpl	$-1, -28(%rbp)
	jne	.L39
	jmp	.L21
.L55:
	nop
.L37:
	jmp	.L21
.L20:
	movl	-20(%rbp), %eax
	addl	$1, %eax
	movl	%eax, -28(%rbp)
	jmp	.L40
.L44:
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$35, %al
	je	.L56
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movzbl	(%rax), %eax
	cmpb	$42, %al
	jne	.L43
	movl	-28(%rbp), %eax
	movslq	%eax, %rcx
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rcx), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	$46, (%rax)
	jmp	.L42
.L43:
	addl	$1, -28(%rbp)
.L40:
	movl	-28(%rbp), %eax
	cmpl	-40(%rbp), %eax
	jl	.L44
	jmp	.L57
.L56:
	nop
.L42:
.L57:
	nop
.L21:
	jmp	.L52
.L48:
	nop
	jmp	.L9
.L49:
	nop
	jmp	.L9
.L50:
	nop
	jmp	.L9
.L51:
	nop
	jmp	.L9
.L52:
	nop
.L9:
	addl	$1, -24(%rbp)
.L8:
	movl	-24(%rbp), %eax
	cmpl	-44(%rbp), %eax
	jl	.L45
	movl	-12(%rbp), %eax
	cltq
	leaq	direc(%rip), %rdx
	movzbl	(%rax,%rdx), %ecx
	movl	-20(%rbp), %eax
	movslq	%eax, %rsi
	movl	-16(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	(%rax,%rsi), %rdx
	leaq	m(%rip), %rax
	addq	%rdx, %rax
	movb	%cl, (%rax)
	movl	$0, -28(%rbp)
	jmp	.L46
.L47:
	movl	-28(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	m(%rip), %rdx
	addq	%rdx, %rax
	movq	%rax, %rdi
	call	puts@PLT
	addl	$1, -28(%rbp)
.L46:
	movl	-28(%rbp), %eax
	cmpl	-36(%rbp), %eax
	jl	.L47
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	solve, .-solve
	.section	.rodata
.LC0:
	.string	"%d"
.LC1:
	.string	"%d%d"
.LC2:
	.string	"%s"
.LC3:
	.string	"%d%s"
.LC4:
	.string	""
	.text
	.globl	main
	.type	main, @function
main:
.LFB1:
	.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
	leaq	-28(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC0(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	jmp	.L59
.L63:
	leaq	-20(%rbp), %rdx
	leaq	-24(%rbp), %rax
	movq	%rax, %rsi
	leaq	.LC1(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	movl	$0, -12(%rbp)
	jmp	.L60
.L61:
	movl	-12(%rbp), %eax
	movslq	%eax, %rdx
	movq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	salq	$2, %rax
	addq	%rdx, %rax
	leaq	m(%rip), %rdx
	addq	%rdx, %rax
	movq	%rax, %rsi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	addl	$1, -12(%rbp)
.L60:
	movl	-24(%rbp), %eax
	cmpl	%eax, -12(%rbp)
	jl	.L61
	leaq	-16(%rbp), %rax
	leaq	s(%rip), %rdx
	movq	%rax, %rsi
	leaq	.LC3(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	scanf@PLT
	movl	-16(%rbp), %edx
	movl	-20(%rbp), %ecx
	movl	-24(%rbp), %eax
	movl	%ecx, %esi
	movl	%eax, %edi
	movl	$0, %eax
	call	solve
	movl	-28(%rbp), %eax
	cmpl	$1, %eax
	jle	.L62
	leaq	.LC4(%rip), %rax
	movq	%rax, %rdi
	call	puts@PLT
.L62:
	movl	-28(%rbp), %eax
	subl	$1, %eax
	movl	%eax, -28(%rbp)
.L59:
	movl	-28(%rbp), %eax
	testl	%eax, %eax
	jne	.L63
	movl	$0, %eax
	movq	-8(%rbp), %rdx
	subq	%fs:40, %rdx
	je	.L65
	call	__stack_chk_fail@PLT
.L65:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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:
